Ich möchte eine Art "Zeichenbrett" auf dem Elemente positioniert werden realisieren.
Dazu habe ich einfach das Zeichenbrett von JComponent abgeleitet:
Und die Klasse Element genau so:
Jetzt dachte ich, da beides von JComponent abgeleitet ist, füge ich einfach die Elemente zum Zeichenbrett hinzu:
Müsste jetzt nicht durch super.paint() in der Zeichenbrett Klasse automatisch paint() von der Element Klasse aufgerufen werden?
Leider wird sie überhaupt nicht aufgerufen.
Wenn ich zeichenbrett einen Layoutmanager zuweise, wird paint() von Element wenigstens aufgerufen aber auf dem Bildschirm erscheint leider trotzdem nichts vom Element.
Habe ich da irgendwo einen Denkfehler?
Dazu habe ich einfach das Zeichenbrett von JComponent abgeleitet:
Java:
public class Zeichenbrett extends JComponent {
//...
public void paint(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(0,0,getWidth(), getHeight()); //Zeichnet irgendwas
super.paint(g);
}
}
Und die Klasse Element genau so:
Java:
public class Element extends JComponent {
//...
public void paint(Graphics g) {
g.setColor(Color.RED);
g.fillRect(0,0,getWidth(),getHeight());
super.paint(g);
}
}
Jetzt dachte ich, da beides von JComponent abgeleitet ist, füge ich einfach die Elemente zum Zeichenbrett hinzu:
Java:
Zeichenbrett zeichenbrett = new Zeichenbrett();
zeichenbrett.setBounds(0,0,500,500);
Element e1 = new Element();
e1.setBounds(10,10,200,200);
zeichenbrett.add(e1);
Müsste jetzt nicht durch super.paint() in der Zeichenbrett Klasse automatisch paint() von der Element Klasse aufgerufen werden?
Leider wird sie überhaupt nicht aufgerufen.
Wenn ich zeichenbrett einen Layoutmanager zuweise, wird paint() von Element wenigstens aufgerufen aber auf dem Bildschirm erscheint leider trotzdem nichts vom Element.
Habe ich da irgendwo einen Denkfehler?