Veröffentlicht 8. Januar 200718 j Hallo, ich habe ein kleines Problem mit JLabel, ImageIcon und Rectangle2D. Ich will auf ein JLabel ein ImageIcon( Bild ) platzieren, klappt alles wunderbar. Es gibt auch keine Probleme. Danach will ich jedoch ein Rectangle2D(Quadrat) von beliebiger Größe auf das JLabel/ImageIcon setzen/malen. Das macht er auch, bloß, das Problem ist jetzt folgendes: Wenn ich die Anwendung minimiere und wieder maximiere/wiederherstelle wird das Quadrat nicht mehr angezeigt. Das wird mehr oder weniger von dem Bild überlagert. Ich habe dazu paar Events implementiert, die auf die Größenänderung und Drag Mouse reagiert, dass funktioniert und das Quadrat wird bei den Events gezeichnet. Gibt es eine Möglichkeit das Quadrat beim Maximieren bzw. beim Focus kriegen auf dem JLabel im Vordergrund zu zeichnen? Bzw. welches Event ist dafür verantwortlich um zu merken, dass das JLabel wieder angezeigt wird bzw. wieder im Vordergrund ist? Bzw. kann man irgendwie die Prioritäten der Objekte beim JLabel vergeben? Dass z.B. Bilder immer unten sind und Rectangle dann oben. Bedingung ist halt eben, dass man nicht auf das Frame bzw. auf das hauptfenster zugreifen darf.
9. Januar 200718 j vielleicht mit der methode repaint() arbeiten und WindowFocusListener ist dein freund.
9. Januar 200718 j Autor Das Problem ist, dass es dann z.B. in einem SWT Fenster laufen sollte. Und der WindowListener ist nur mit dem JFrame verfügbar. Ich bräuchtemal sowas ähnliches für JLabel.
9. Januar 200718 j Autor Problem wurde nun gelöst. Kann geschlossen werden. Lösung: paint() überschreiben und dort das Quadrat zeichnen. Falls sich die Position des Quadrates ändert, mit der if-Anweisung und einem boolean die Bounds nach Wunsch ändern.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.