Ich habe mehrere Male in den letzten fragen, warum einige meiner Java/Swing Popup-Menüs zu funktionieren scheint unter Linux aber nicht unter von Windows und umgekehrt. Wie implementiere ich ein Popup-Menü, das auf beiden Betriebssystemen funktioniert?Wie ein Popup-Menü in Swing zu implementieren, die sowohl unter Windows und Linux arbeitet
0
A
Antwort
2
Lesen Sie den Abschnitt aus dem Swing-Tutorial auf Bringing Up a Popup Menu für Arbeitsbeispiele.
Es zeigt, wie man die isPopupTrigger()
Methode der MouseEvent
verwendet.
Oder Sie können die setComponentPopupMenu(...)
Methode von JComponent
verwenden, die seit JDK 1.5 vorhanden ist und Sie müssen sich nicht um den MouseListener kümmern.
1
In Windows funktioniert ein Aufruf von MouseEvent :: isPopupTrigger problemlos in der mouseReleased-Methode, gibt aber immer false zurück, wenn er innerhalb der mousePressed-Methode aufgerufen wird. In Linux ist das Gegenteil der Fall.
Wie der Link von @camickr erwähnt, ist es nicht so sehr das Betriebssystem, sondern die LAF, die Sie verwenden. – FredK