我正在开发一个 java 应用程序,我手动创建了一个动态 JMenu(取决于输入数据)。我为菜单的每个菜单项添加相同的操作。问题是,根据调用的菜单项,我想每次都采取不同的行动。有没有一种简单的方法可以做到这一点(每个 JMenuItem 的 setData(Object data) 之类的东西,还是我被迫从 JMenuItem 派生)?
提前致谢,
尤利安
我正在开发一个 java 应用程序,我手动创建了一个动态 JMenu(取决于输入数据)。我为菜单的每个菜单项添加相同的操作。问题是,根据调用的菜单项,我想每次都采取不同的行动。有没有一种简单的方法可以做到这一点(每个 JMenuItem 的 setData(Object data) 之类的东西,还是我被迫从 JMenuItem 派生)?
提前致谢,
尤利安
我想您可以在 Action 的 actionPerformed 方法中使用 ActionEvent.getSource。将事件的来源与您的 JMenuItem 进行比较。
要存储附加信息,您可以使用 putClientProperty 或扩展 JMenuItem
根据最初的问题和评论,我建议 Julian 将其用字符串和相关操作构建的 JMenuItem 替换为仅用一个操作构建的 JMenuItem,同时提供文本和相关行为。此操作可以引用应用程序中的其他元素以提供其所需的行为。