我正在开发一个Java应用程序,并且我手动创建了一个动态JMenu(取决于输入数据)。我为菜单的每个菜单项添加相同的操作。问题是,根据所调用的菜单项,我想每次采取不同的操作。有没有这样做的一个简单的方法(像每个JMenuItem setData(对象数据)的东西,或者我不得不从JMenuItem派生)?添加到JMenuItem的附加信息
由于提前,
尤利安
我正在开发一个Java应用程序,并且我手动创建了一个动态JMenu(取决于输入数据)。我为菜单的每个菜单项添加相同的操作。问题是,根据所调用的菜单项,我想每次采取不同的操作。有没有这样做的一个简单的方法(像每个JMenuItem setData(对象数据)的东西,或者我不得不从JMenuItem派生)?添加到JMenuItem的附加信息
由于提前,
尤利安
我想你可以在你的行动actionPerformed方法使用ActionEvent.getSource。将事件的来源与您的JMenuItem进行比较。
存储更多的信息,您可以使用putClientProperty或扩展的JMenuItem
根据最初的问题和意见,我建议朱利安,以取代其的JMenuItem建有一个字符串,并用只有内置的JMenuItem相关联的动作行动,提供文本和相关行为。此操作可引用应用程序中的其他元素以提供其所需的行为。
我可以用这种方式做很多动作。我会用putClientProperty去。 – INS 2010-03-04 16:32:20
是的,这给了我的对象。但我需要额外的信息,而不仅仅是对象。有没有办法做到这一点? – INS 2010-03-04 13:46:56
你需要什么额外的信息?一旦你知道哪个项目是源代码,你可以为每个项目做一些不同的事情 – 2010-03-04 13:49:20
你需要什么样的信息来补充源对象? – Riduidel 2010-03-04 13:49:38