Simpel programma

Status
Niet open voor verdere reacties.

tomgreep

Gebruiker
Lid geworden
18 aug 2008
Berichten
42
Ik ben nog steeds aan het oefenen met Java (zie mijn vorige post) en ik loop weer vast, en ik zou niet weten wat er fout is. Ik maak een programma'tje waarbij de gebruiker een aantal pixels kan kiezen. Nadat hij op de knop heeft gedrukt worden er horizontale lijnen getekend met het aantal pixels dat hij heeft ingevoerd tussen de lijnen in. Echter, het programma start geen eens op, zonder een foutmelding. Wat doe ik fout?

[JS]package h03;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Horizontaalpaneel extends JPanel implements ActionListener
{
private JButton tekenknop;
private JTextField afstandveld;
private int afstand;

public Horizontaalpaneel()
{
tekenknop = new JButton("Teken de lijnen");
tekenknop.addActionListener(this);
afstandveld = new JTextField("5",3);
afstandveld.addActionListener(this);
add(new JLabel("Afstand tussen de lijnen"));
add(afstandveld);
add(tekenknop);
}

public void paintComponent(Graphics g)
{
super.paintComponent(g);
int yPos = getHeight() / 2;
int onder = getHeight();
int breedte = getWidth();
while (yPos <= onder)
{
g.drawLine(0, yPos, breedte, yPos);
yPos = yPos + afstand;
}
}

public void bepaalAfstand()
{
afstand = Integer.parseInt(afstandveld.getText());
}

public void actionPerformed(ActionEvent e) {
bepaalAfstand();
repaint();
}

}
[/JS]

[JS]package h03;

import javax.swing.*;

public class Horizontaal
{

public Horizontaal()
{
JFrame venster = new JFrame();
venster.setSize(500,300);
venster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
venster.setTitle("Horizontale lijnen");
venster.setLocation(100,100);
JPanel hoofdpaneel = new Horizontaalpaneel();
venster.add(hoofdpaneel);
venster.setVisible(true);
}

public static void main( String[ ] args)
{
new Horizontaal();
}
}[/JS]
 
Ik geef panelen nooit een size mee, en het werkt wel altijd. Het lijkt erop dat ie vastloopt door teveel bewerkingen of zo.
 
De eerste keer dat paintComponent wordt aangeroepen is afstand nog 0.
De while loop zal dan ook nooit eindigen....

gr.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan