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]
[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]