Frage zu paintAll(...) und paintComponent(...) von JComponent

DarthShader

Erfahrenes Mitglied
Hallo,

ich habe eine Frage bezüglich der Mechanik, wie Swing/AWT die Komponenten zeichnet.

Ich habe eine Klasse "PaintComponent" die von "JComponent" erbt. "PaintComponent" überschreibt die Methode "protected void paintComponent( Graphics g )", so wie es laut Sun's Swing Tutorial sein soll. Füge ich meine Komponente in eine JForm ein und stelle es dar, wird alles korrekt gezeichnet.


Nun gabe ich eine neue eigene Komponente namens "PaintContainer", was wieder von JComponent erbt. Ich füge alle meine "PaintComponent" Objekte dem "PaintContainer" per .add Methode hinzu.

Nun möchte ich, dass der "PaintContainer" sowie alle seine Kinder, was ja die "PaintComponent" sind, gezeichnet wird - und zwar "manuell" programmatisch ausgelöst.

Ich dachte, ich bräuchte nun einfach die Methode "paintAll( Graphics g )" von "PaintContainer" aufzurufen, denn laut API soll es die Komponente sowie alle Sub-Komponenten zeichnen (was ja die "PaintComponent"s sein sollen). Aber es wird nichts gezeichnet - das Programm springt nichtmal in die "paintComponent( Graphics g )" Methode der Klasse "PaintComponent". Obwohl Sun's Swing Tutorial sagt, dass die Methode "paint( Graphics g )" auch "paintComponent( Graphics g )" beim Zeichnen aufruft.

Weiß jemand, warum beim "paintAll" des Vater-Objektes nicht "paintComponent(..)" der Kinder aufgerufen wird?


Vielen Dank für Eure Hilfe!
 
Hallo,

als erstes würde mich interessieren wie und wo mit welchem Parameter für "g" du
paintAll aus deinem Programmcode aufgerufen hast ! ?

Und dann würde ich es mal mit einem Aufruf der repaint()-Methode versuchen ... !

Sollte eigentlich funktionieren ...

Gruß JAdix
 
Zurück