2010-03-04 93 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