2010-03-04 97 views
1

我正在開發一個Java應用程序,並且我手動創建了一個動態JMenu(取決於輸入數據)。我爲菜單的每個菜單項添加相同的操作。問題是,根據所調用的菜單項,我想每次採取不同的操作。有沒有這樣做的一個簡單的方法(像每個JMenuItem setData(對象數據)的東西,或者我不得不從JMenuItem派生)?添加到JMenuItem的附加信息

由於提前,

尤利安

回答

6

我想你可以在你的行動actionPerformed方法使用ActionEvent.getSource。將事件的來源與您的JMenuItem進行比較。

存儲更多的信息,您可以使用putClientProperty或擴展的JMenuItem

+0

是的,這給了我的對象。但我需要額外的信息,而不僅僅是對象。有沒有辦法做到這一點? – INS 2010-03-04 13:46:56

+0

你需要什麼額外的信息?一旦你知道哪個項目是源代碼,你可以爲每個項目做一些不同的事情 – 2010-03-04 13:49:20

+0

你需要什麼樣的信息來補充源對象? – Riduidel 2010-03-04 13:49:38

1

根據最初的問題和意見,我建議朱利安,以取代其的JMenuItem建有一個字符串,並用只有內置的JMenuItem相關聯的動作行動,提供文本和相關行爲。此操作可引用應用程序中的其他元素以提供其所需的行爲。

+0

我可以用這種方式做很多動作。我會用putClientProperty去。 – INS 2010-03-04 16:32:20