diesy Geschrieben 8. Januar 2007 Geschrieben 8. Januar 2007 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.
baba007 Geschrieben 9. Januar 2007 Geschrieben 9. Januar 2007 vielleicht mit der methode repaint() arbeiten und WindowFocusListener ist dein freund.
diesy Geschrieben 9. Januar 2007 Autor Geschrieben 9. Januar 2007 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.
diesy Geschrieben 9. Januar 2007 Autor Geschrieben 9. Januar 2007 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden