Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加到JMenuItem的其他信息_Java_User Interface_Swing_Jmenuitem - Fatal编程技术网

Java 添加到JMenuItem的其他信息

Java 添加到JMenuItem的其他信息,java,user-interface,swing,jmenuitem,Java,User Interface,Swing,Jmenuitem,我正在开发一个java应用程序,我手工创建了一个动态JMenu(取决于输入数据)。我为菜单的每个菜单项添加相同的操作。问题是,根据名为的菜单项,我希望每次都采取不同的操作。有没有一种简单的方法可以做到这一点(比如每个JMenuItem的setData(对象数据),或者我是被迫从JMenuItem派生的) 提前感谢, Iulian我想您可以在操作的actionPerformed方法中使用ActionEvent.getSource。将事件的源与JMenuItem进行比较 要存储其他信息,您可以使用p

我正在开发一个java应用程序,我手工创建了一个动态JMenu(取决于输入数据)。我为菜单的每个菜单项添加相同的操作。问题是,根据名为的菜单项,我希望每次都采取不同的操作。有没有一种简单的方法可以做到这一点(比如每个JMenuItem的setData(对象数据),或者我是被迫从JMenuItem派生的)

提前感谢,


Iulian

我想您可以在操作的actionPerformed方法中使用ActionEvent.getSource。将事件的源与JMenuItem进行比较


要存储其他信息,您可以使用putClientProperty或扩展JMenuItem,我想您可以在操作的actionPerformed方法中使用ActionEvent.getSource。将事件的源与JMenuItem进行比较


要存储其他信息,您可以使用putClientProperty或扩展JMenuItem。根据最初的问题和备注,我建议Julian将构建的JMenuItem替换为一个字符串和一个关联的操作,而JMenuItem只构建了一个操作,提供文本和关联的行为。此操作可以引用应用程序中的其他元素,以提供其所需的行为。

根据最初的问题和备注,我建议Julian使用字符串替换构建的JMenuItem,并使用仅构建了操作的JMenuItem替换关联的操作,同时提供文本和关联的行为。此操作可以引用应用程序中的其他元素,以提供其所需的行为。

是的,这为我提供了对象。但我想要更多的信息,不仅仅是对象。有没有办法做到这一点?你还需要什么额外的信息?一旦你知道哪个项目是源,你可以为每个项目做一些不同的事情,你需要什么样的信息,源对象的补充?另一个对象,除了jMenuItem我知道,菜单是动态的(错过了那部分),我已经更新了我的答案是的,这给了我对象。但我想要更多的信息,不仅仅是对象。有没有办法做到这一点?你还需要什么额外的信息?一旦你知道哪个项目是源,你可以为每个项目做一些不同的事情。你需要什么样的信息,源对象的补充?另一个对象,除了jMenuItem,我理解,菜单是动态的(错过了这一部分),我已经更新了我的答案。我可以通过这种方式进行大量的操作。我将使用putClientProperty。我可以通过这种方式执行大量操作。我会选择putClientProperty。