Hi,
ich soll ein Programm schreiben das, nachdem man auf einen Button geklickt hat, ein Rechteck in ein JPanel zeichnet. Ich habe auch schon einiges, nur verstehe ich nicht ganz wo der Fehler im Quellcode liegt. Das Rechteck wird nach dem Klick nicht gezeichnet.
Hier mal meine Klassen:
ich soll ein Programm schreiben das, nachdem man auf einen Button geklickt hat, ein Rechteck in ein JPanel zeichnet. Ich habe auch schon einiges, nur verstehe ich nicht ganz wo der Fehler im Quellcode liegt. Das Rechteck wird nach dem Klick nicht gezeichnet.
Hier mal meine Klassen:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI {
JPanel panel;
JButton button;
MyPanel myPanel = new MyPanel();
public GUI() {
JFrame frame = new JFrame("Uebung 4 - Diagramm");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout(FlowLayout.LEFT));
frame.setVisible(true);
button = new JButton("Daten anzeigen");
frame.getContentPane().add(button);
panel = new JPanel();
panel.setPreferredSize(new Dimension(300,300));
panel.setBackground(new Color(200,200,255));
JLabel label = new JLabel("Diagramm");
panel.setLayout(new FlowLayout(FlowLayout.LEFT));
panel.add(label);
frame.getContentPane().add(panel);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
button.setForeground(new Color(0,200,0));
myPanel.setPreferredSize(new Dimension(100,100));
panel.add(myPanel);
panel.repaint();
}
});
frame.pack();
}
public static void main(String[] args) {
new GUI();
}
}
Java:
import java.awt.*;
import javax.swing.*;
public class MyPanel extends JComponent {
private static final long serialVersionUID = 1L;
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(new Color(100,100,155));
g.fillRect(1,1,100,100);
}
}