Swing Swing-Widgets und paintComponent()

Monsees

Mitglied
Moin moin!

Ich habe eine Verständnisfragen, auf die ich trotz Recherche keine Antwort gefunden habe.

Ausgangssituation:
1. Wenn ich ein JPanel-Objekt instanziiere besitzt dies eine leere paintComponent()-Methode.

2. Jedes Swing-Widget (JLabel, JButton) besitzt eine paintComponent()-Methode in der steht, wie es zu zeichnen ist.

Wie wird nun ein von mir erstelltes JPanel-Objekt, dem ich über addComponent(Component c) Widgets hinzugefügt habe, gezeichnet?
Ruft die paint()-Methode des JFrames die paintComponent()-Methode jedes Widgets auf, das zu dem JPanel gehört?

Meine Vermutung: ja, denn die paintComponent()-Methode des JPanels selbst überschreibe ich in diesem Szenario ja nicht. Sprich, sie bleibt leer.

Ich hoffe mich verständlich ausgedrückt zu haben.

Vielen Dank im Voraus!
 
Die paint-Methode des JFrames sollte irgendwie die paint-Methode des JPanels aufrufen. Und die Implementierung von paint in der Klasse JComponent ruft nacheinander paintComponent, paintBorder, und paintChildren auf. In der paintChildren-Methode wird dann die paint-Methode der Children aufgerufen, also von den JComponents, die du dem JPanel hinzugefügt hast.
Die Betrachtung ist natürlich vereinfacht, da sich eine JComponent nicht selber zeichnet, sondern das Zeichnen an ihr UI delegiert (ansonsten könnte man das Aussehen von JComponents ja nur mit sehr viel Aufwand zur Laufzeit ändern), aber so in etwa müsste das ablaufen.
 

Zurück
Oben