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