Swing Feststellen ob in JFrame Decorations geklickt wurde?

  • Themenstarter Themenstarter GuestOneThousan
  • Beginndatum Beginndatum
G

GuestOneThousan

Gast
Hi,

ist es irgendwie möglich festzustellen, ob in die "Decorations-Leiste" eines JFrames geklickt wurde? Also da, wo man drückt und den Mousebutton gedrückt hält um das Fenster zu bewegen.

Mit Focus und Activated macht keinen Sinn, da das Fenster bereits aktiv ist und den Focus hat.

Wozu das ganze? Ich möchte die neue Location (nach dem Bewegen) des Fensters in eine Datenbank schreiben. Und das soll logischerweise erst beim loslassen des Mousebuttons erfolgen.

MouseListener auf JFrame funktioniert leider nicht...
 
Eine simple Lösung fällt mir dazu leider nicht ein.
Wie wäre es einfach auf componentMoved(...) zu reagieren, dort die aktuelle Position in einer Variable speichern und ggfs einen Timer/Thread starten. Wird componentMoved vor Ablauf des Timers erneut ausgeführt wird der Timer "zurückgesetzt". Erst wenn der Timer abgelaufen ist wird das Speichern in die DB ausgelöst.
 
Du hast den falschen Ansatz. Das geht ganz easy:

Java:
frame.addComponentListener(new ComponentListener(){

     @Override
     public void componentMoved(ComponentEvent e){

          // get frame position and save to database
     }
});

So funktioniert das ganze dann übrigens auch noch unabhängig davon, wie das Fenster zu seiner neuen Position gekommen ist (man kann es auch über Rechtsklick auf den Taskbar-Eintrag -> Move -> Pfeiltasten bewegen, oder programmatisch die Position verändern etc)
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben