Menu beim TrayIcon ausblenden

Hallo,

habe folgendes Problem. Habe ein TrayIcon mit JPopup- Menü. Alles klappt soweit gut. Alle FUnktionen werden geladen etc...
Nur ist eine Sache richtig nervig: Wenn ich nichts auswähle, bleibt das Menü bestehen. :mad:

Weiß jemand, wie ich es einstellen kann, dass wenn ich zB auf den Desktop klicke das Menu wieder verschwindet? Btw, das Problem hab ich nur unter Win 7 und Vista. Auf XP, Linux und Mac OX.x verschwindet es automatisch bei einem Klick auf den Bildschirm.
Das blöde ist, die meisten User werdern Win7 haben :bahnhof::oops::noe::shock:

Danke im voraus!
 

Runtime

Top Contributor
Soviel ich weiss, ist das die Sache von Windows, da kann man nichts machen ohne nativen Code, selbst dann ist es auch nicht 100%-ig möglich.
 

shadow123

Mitglied
Hi,

versuch mal dein unsichtbares Fenster in den Vordergrund zu setzen. Dann sollte das Menü verschwinden wenn es den Focus verliert. So z. B. funktioniert es bei native Programmiersprachen (Delphi, C/C++).

Gruß
 

André Uhres

Top Contributor
Der Vorschlag von shadow123 wird imho eher funktionieren als der von slawaweis (mein Vorschlag funktioniert selbstverständlich).

Gruß,
André
 

Runtime

Top Contributor
Mir ist gerade, als ich mit einem TrayIcon gearbeitet habe, eine Idee gekommen:
Dem TrayIcon kann man einen MouseListener adden, mit dessen Event man dann die Screen-Koordinaten herausliest und dort ein JPopupMenu zeigt, und dann macht mans wie oben beschrieben.
Edit:
Als Invoker kann man das Fenster benutzen, das erzeugt wird wenn man das TrayIcon zum Tray hinzufügt, damit sich die Andwendung nicht beendet wenn alle anderen Frames disposed sind. In dieses Fenster kommt man mit Window.getWindows().
 
Zuletzt bearbeitet:

André Uhres

Top Contributor
Hallo Runtime,

einen JPopupMenu anzuzeigen, ist selbstverständlich kein Problem. Auch ist dein Vorschlag anscheinend identisch mit dem von slawaweis. Ich bezweifle aber, dass er das Problem von LovelySacrefice löst.

Gruß,
André
 
Das lustige ist jetzt, ich habe das Problem nur unter Win 7 ^^
Auf Win XP (da wo es überwiegend eingesetzt wird derzeit) funktioniert es wie es soll.
Hab ich vor kurzen zufällig entdeckt... ^^
 

Ähnliche Java Themen


Oben