添加到 JMenuItem 的附加信息
我正在开发一个java应用程序,并手动创建一个动态JMenu(取决于输入数据)。我为菜单的每个菜单项添加相同的操作。问题是,根据调用的菜单项,我想每次采取不同的操作。有没有一种简单的方法可以做到这一点(比如每个 JMenuItem 的 setData(Object data) 或者我被迫从 JMenuItem 派生)?
预先感谢,
尤利安
I'm developing a java application and I create a dynamic JMenu by hand (depending on the input data). I add the same action for each menu item of the menu. The problem is that depending on the menu item called I would like to take a different action each time. Is there a simple way of doing this (Something like setData(Object data) for each JMenuItem or am I forced to derive from JMenuItem)?
Thanks in advance,
Iulian
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想你可以在你的 Action 的 actionPerformed 方法中使用 ActionEvent.getSource 。将事件源与您的 JMenuItem 进行比较。
要存储附加信息,您可以使用 putClientProperty 或扩展 JMenuItem
i guess you can use ActionEvent.getSource in the actionPerformed method of your Action. compare the source of the event with your JMenuItem's.
to store additional info, you can use putClientProperty or extend JMenuItem
根据最初的问题和评论,我建议 Julian 将其用字符串和关联操作构建的 JMenuItem 替换为仅用操作构建的 JMenuItem,提供文本和关联行为。此操作可以引用应用程序中的其他元素来提供其所需的行为。
According to initial question and remarks, I would suggest Julian to replace its JMenuItem built with a string and an associated action with a JMenuItem built with only an action, providing both the text and the associated behaviour. This action could reference others elements from application to provide its requireds behaviour.