2
我試圖將子菜單添加到存在於系統任務欄中彈出菜單中的MenuItem
。有什麼辦法可以做到這一點?我發現了一些有關子菜單的解決方案,但他們使用JMenuItem
,而TrayIcon
只接受PopupMenu
,它只接受MenuItem
s。如何將子菜單添加到MenuItem
試圖與MenuItem
來實現這一目標:
我試圖將子菜單添加到存在於系統任務欄中彈出菜單中的MenuItem
。有什麼辦法可以做到這一點?我發現了一些有關子菜單的解決方案,但他們使用JMenuItem
,而TrayIcon
只接受PopupMenu
,它只接受MenuItem
s。如何將子菜單添加到MenuItem
試圖與MenuItem
來實現這一目標:
一個JMenuItem
不支持子菜單,您需要使用另一個JMenu
(添加到您JPopupMenu
)。見How to Use Menus更多細節
例如...
JPopupMenu popupMenu = new JPopupMenu();
JMenu deviceMenu = new JMenu("Add Device");
deviceMenu.add(new JMenuItem("Add More..."));
popupMenu.add(deviceMenu);
popupMenu.add(new JMenuItem("Delete Device"));
popupMenu.add(new JMenuItem("Fire"));
popupMenu.add(new JMenuItem("Fault"));
popupMenu.add(new JMenuItem("Supress"));
(當然,你仍然需要爲所有的這個插件功能)
和任務欄圖標只接受只接受MenuItems的PopupMenu。
還有一招,你要騙一點,看看How do I get a PopupMenu to show up when I left-click on a TrayIcon in Java?爲例
嗨。我知道我已經接受了這個答案,但是我有一個問題。菜單出現,但是當我將鼠標懸停在菜單項上時,菜單項不會突出顯示,當點擊它時菜單也不會消失。你有什麼主意嗎? –
從內存中,菜單對我來說突出顯示,但我必須對其進行測試。您可能需要強制手動關閉彈出菜單,因爲它沒有真正附加到任何東西... – MadProgrammer
我已經在聽衆的末尾添加了'popup.showVisible(false)',但我不知道如何處理鼠標點擊它 –