Hi,
ich habe ein JFrame, in dem ich eine paintComponent() aufrufe. Wenn ich nun jedoch die Größe meines Fensters ändere, so wird paintComponent() leider nicht automatisch aufgerufen, so wie es doch bei Swing automatisch sein sollte.
In paintComponent() werden nun Rechtecke (Klasse MyRectangle) gezeichent die ich in einem Vector verwaltet sind
Es ist sicher was total banales, aber vielleicht kann mir ja jemand helfen da ich selbst nicht draufkomme.
ich habe ein JFrame, in dem ich eine paintComponent() aufrufe. Wenn ich nun jedoch die Größe meines Fensters ändere, so wird paintComponent() leider nicht automatisch aufgerufen, so wie es doch bei Swing automatisch sein sollte.
Code:
public class MyFrame extends JFrame {
private JPanel drawField;
private Vector allrec = new Vector();
private Container cp;
private int breite = 500;
private int hoehe = 500;
public MyFrame() {
//JFrame mit folgenden Eigenschaften
setTitle("Rechteck");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(100, 100);
setBackground(Color.GREEN);
//JPanel auf dem gezeichnet werden soll
drawField = new JPanel();
drawField.setPreferredSize(new Dimension(breite, hoehe));
drawField.setBackground(Color.GREEN);
drawField.setLayout(new BorderLayout());
cp = this.getContentPane();
cp.add(drawField, BorderLayout.CENTER);
//Mouse und KeyListener hinzufügen.....usw.
setVisible(true);
this.pack();
Code:
public void paintComponent(Graphics g) {
//super.paintComponent(g); //ist für JFrame nicht definiert ...liegt es daran???
Graphics2D g2 = (Graphics2D) g;
for (int i = 0; i < allrec.size(); i++) {
((MyRectangle) allrec.get(i)).paintComponent(g2);
}
}