我想捕捉事件,當用戶點擊TestSuite並動態添加一些MenuItems。添加單擊事件處理程序到JMenu
JMenu menu5 = new JMenu("TestSuite");
如何在Java Swing上做到這一點?我可以通過添加addActionListener(this)來捕獲所有JMenuItem點擊事件。但是這次不是JMenuItem,它是JMenu。
我想捕捉事件,當用戶點擊TestSuite並動態添加一些MenuItems。添加單擊事件處理程序到JMenu
JMenu menu5 = new JMenu("TestSuite");
如何在Java Swing上做到這一點?我可以通過添加addActionListener(this)來捕獲所有JMenuItem點擊事件。但是這次不是JMenuItem,它是JMenu。
您可以使用ActionListener接口,就像在JButton上添加事件一樣。
menu5.addActionListener(this);
其中「this」是在上面的示例中實現ActionListener接口的類的引用,它是相同的類。
添加你可以使用menu5.add(新菜單項(「菜單物品1」))
您可以將MenuListener
添加到JMenu
和監聽menuSelected
事件菜單。這將允許您在彈出窗口可見之前動態地添加/刪除菜單項到菜單。
如果他們使用加速鍵,添加鼠標偵聽器將失敗。 –
@BillK你不能將加速器添加到菜單中,我認爲你的意思是「nomomics」。在這種情況下,MenuListener將被調用。正如我所建議的,您需要根據實際需求選擇解決方案。菜單的設計不是以這種方式使用。 – camickr
許多程序根據狀態添加和刪除菜單項......僅僅因爲您沒有遇到一組要求,您可能不應該認爲它們無效。 –
(1-)'當用戶點擊TestSuite並動態添加一些MenuItems .' - 這是一個糟糕的設計。你怎麼知道用戶何時想「添加一些MenuItems」或者他們是否想顯示彈出式菜單?也許第一個菜單項應該是「添加更多...」菜單項。 – camickr
這是一個完全合乎邏輯的問題。不要認爲它是「添加」菜單項,Marcus很可能想要根據當時的狀態來動態地創建菜單的內容。他使用「添加」可能是對問題的簡化。 –
@BillK,是的,我看你是否完全「重建」菜單,每次這是合理的。無論如何,我的評論是針對「添加」的規定。 – camickr