Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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 您将JPOppMenu的逻辑存储在哪里?_Java_Swing_Jmenuitem_Jpopupmenu - Fatal编程技术网

Java 您将JPOppMenu的逻辑存储在哪里?

Java 您将JPOppMenu的逻辑存储在哪里?,java,swing,jmenuitem,jpopupmenu,Java,Swing,Jmenuitem,Jpopupmenu,我对操作逻辑(当用户从弹出菜单中选择菜单项时会发生什么情况)应该放在哪里有点困惑。目前,我将它存储在JPopupMenu的一个子类中,但当我单击菜单项时,它似乎没有调用该事件 子类代码: 我通过调用setComponentPopupMenu方法将其附加到JTabbedPane myTabPane.setComponentPopupMenu(myPopupMenu); 这个编译没问题。它确实会按预期显示弹出菜单,但在弹出菜单中选择一个菜单选项时,所有选项都是无声的。不会显示任何消息。我需要把它

我对操作逻辑(当用户从弹出菜单中选择菜单项时会发生什么情况)应该放在哪里有点困惑。目前,我将它存储在JPopupMenu的一个子类中,但当我单击菜单项时,它似乎没有调用该事件

子类代码: 我通过调用
setComponentPopupMenu
方法将其附加到JTabbedPane

myTabPane.setComponentPopupMenu(myPopupMenu); 

这个编译没问题。它确实会按预期显示弹出菜单,但在弹出菜单中选择一个菜单选项时,所有选项都是无声的。不会显示任何消息。我需要把它放在其他地方吗?

将鼠标指示器添加到菜单项中

myListener myListener = new myListener();
item1.addMouseListener(myListener);
item2.addMouseListener(myListener);
看来你的方法有点错误。请参阅
  • 你必须添加到

  • 添加适当的侦听器,例如,阅读Oracle教程了解工作代码示例

  • a)不要扩展JPopupMenu b)不要使用鼠标侦听器,而是使用操作(通过简单地将它们添加到弹出窗口)顺便说一句,这些都在swing tag wiki在线教程参考的相关章节中进行了解释
    myListener myListener = new myListener();
    item1.addMouseListener(myListener);
    item2.addMouseListener(myListener);