Swing Auf Veränderung des Clipboards reagieren

mayewski

Mitglied
Hallo,

ich versuche schon seit längerem eine lösung für mein Problem zu finden.
Bisher ohne Erfolg...

Das Problem:

Ich habe eine JTextArea, in der nach dem Starten des Programms der aktuelle Inhalt des Clipboards steht.
Soweit, alles in Ordnung.
Den Inhalt darf der User danach beliebig verändern.
Wenn der User aber nun einen anderen Text in die Zwischenablage kopiert, möchte ich den neuen Text wieder in die Area schreiben.

Wie das letztendlich funktioniert, ist mir relativ egal, Hauptsache es geht. 🙂

Ich habe mir schon den FlavorListener angeschaut, jedoch reagiert der nicht, wenn sich nur der Text ändert(hab ich so gelesen).
Mein anderer Gedanke war, dass sich die textarea ändert, sobald der User STRG+C drückt.
Allerdings funktioniert der KeyListener nicht, wenn das Programm im Hintergrund läuft.

Kann mir bei dem Problem weiterhelfen?

Vielen Dank schonmal 🙂
 
Erneuere den Text doch einfach in einen WindowListener, den den Status prüft, wenn das Frame im Vordergrund kommt. Oder ein FocusListener, mir fehlen aber Erfahrungen, was sich dazu besser eignet. Wenn sich der Inhalt tatsächlich nur ändern soll, wenn sich der Inhalt des Clipboards geändert hat, kannst du ihm ja in einer Klassenvar. zwischenspeichern und vorher vergleichen.
 
Es wird wohl auf ein Thread hinauslaufen, der alle X sekunden den Inhalt überprüft.
Du könntest dir z.B. angucken wie es jDownloader es geregelt hat.
 
Was spricht gegen meine Möglichkeit mit dem Listener? Wenn man etwas in einen externen Programm kopiert, verliert die aktuelle GUI für diese Zeit den Fokus, und die Änderung muss ja erst durchgeführt werden, wenn sie diesen wieder bekommt.
 

Zurück
Oben