# Problem mit JInternalFrame und zeichnen



## Lacrul (17. Sep 2003)

Seit gegrüßt Javaprogrammierer,

ich habe ein Problem bei dem mir sicher jemand weiterhelfen kann:

Ich habe ein JFrame-Objekt das ein JPanel im Zentrum enthällt. Außerdem mehrere JInternalFrame-Objekte die da drüber herum schwirren. Auf dem JPanel wird gezeichnet. Das Problem ist wenn, ich das JPanel neuzeichne wird über die JInternalFrame-Objekte gezeichnet. Gut, das löse ich indem ich in der paintComponent() funktion des JPanels die repaint() fkt der JInternalFrame-Objekte aufrufe. Wird jetzt aber häufig das JPanel neugezeichnet, führt die logischerweise zu einem schrecklichen Flimmern, da dass doubleBuffering des Swing das nicht lösen kann und ich kein doublebuffering für mehrere Objekte einbauen kann. So wie kann ich das lösen?

Ich dachte mir, es muß doch möglich sein das JPanel-Objekt nur das neuzeichnen zu lassen was nicht durch ein JInternalFrame-Objekt überdeckt ist. Dann würde auch kein Flimmern entstehen. Aber wie soll das gehen.

Für jede Hilfe bin ich sehr dankbar

Lacrul.


----------



## DTR (17. Sep 2003)

In welcher Methode zeichnest du welche Komponenten/Zeichnungen?


----------



## Lacrul (17. Sep 2003)

in der paintComponent() methode des JPanels wird das JPanel gezeichnet und am ende repaint() für die JInternalFrame-Objekte aufgerufen die drüber liegen und sonst überzeichnet sind. da erst das Panel gezeichnet wird und dann wieder die InternalFrames entsthet ja das störende Flimmern.

Lacrul


----------



## DTR (17. Sep 2003)

versuch mal die InternalFrams in der Methode paint() zu zeichen. Aber super.paint() am Anfang nicht vergessen.


----------



## Lacrul (18. Sep 2003)

ne, das mit der paint() methode macht das ganze nur noch schlimmer. jetzt flimmern die Frames ebenfalls wenn man sie übereinander zieht das verbessert leider nichts. ich verstehe nicht dass die internalframes so konzipiert sind das sie einfach überzeichnet werden können. Gibt es den eine alternative Klasse zu JInternalFrame die nicht einfach von darunterliegen komponenten überschreiben werden kann?


----------



## Lacrul (18. Sep 2003)

danke für die versuchte hilfe! Aber ich hab mein problem selbst lösenmüssen. Ich habe mich nicht richtig informiert über die benutzung von internalframes. Die Klasse JDesktopPane erledigt die ganzen aufgaben und behebt die probleme.

Lacrul


----------



## Nobody (18. Sep 2003)

kapitel 34.2.4 des Javabuchs

versuch mal obs hilft


----------

