java - 您将 JPopupMenu 的逻辑存储在哪里?

标签 java swing jmenuitem jpopupmenu

我对应该放置操作逻辑(当用户从​​弹出窗口中选择菜单项时发生的情况)的位置感到有点困惑。目前,我将它存储在 JPopupMenu 的子类中,但当我单击菜单项时它似乎没有调用该事件。

子类代码:

public class MyPopupMenu extends JPopupMenu {
    JMenuItem item1;
    JMenuItem item2;
    
    public MyPopupMenu() {
        item1 = new JMenuItem("New Tab");
        item2 = new JMenuItem("Close Tab");
        
        add(item1);
        add(item2);
        
    }
    
    class myListener extends MouseAdapter {
        @Override
        public void mouseClicked(MouseEvent ev) {
            System.out.println("I've been clicked!");
        }
    }
}

我通过调用 setComponentPopupMenu 方法将其附加到我的 JTabbedPane。

myTabPane.setComponentPopupMenu(myPopupMenu); 

编译成功。它确实按预期显示了弹出菜单,但是在弹出菜单中选择一个菜单选项后,一切都没有了。没有消息显示。我需要把它放在别的地方吗?

最佳答案

关于java - 您将 JPopupMenu 的逻辑存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19876551/

相关文章:

java.lang.NullPointerException,看不出出了什么问题

java - 如何让JMenuBar激活菜单而不弹出菜单?

java - jPopUpMenu 更改鼠标悬停背景

java - 如何防止 JCheckBoxMenuItem 单击后关闭?

Java RegEx SubString 多行之间

java - 使用加载/获取使用泛型

java - JPQL - ManyToMany self 引用

java - "Unable to execute HTTP Request: Broken Pipe"与 Amazon EMR 上的 Hadoop/s3

java - isArmed、isPressed 和 isSelected 之间的区别

java - 如何实现 sleep 以显示图像幻灯片