2

我对应该放置操作逻辑(当用户从​​弹出窗口中选择菜单项时发生的情况)的位置感到有些困惑。目前,我将它存储在 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); 

这编译OK。它确实按预期显示了弹出菜单,但是在选择弹出菜单中的一个菜单选项后,一切都保持沉默。不会显示任何消息。我需要把它放在别的地方吗?

4

2 回答 2

1
于 2013-11-09T13:38:05.467 回答
0

将 MouseListner 添加到您的菜单项

myListener myListener = new myListener();
item1.addMouseListener(myListener);
item2.addMouseListener(myListener);

看来你的方法有点不对。请参阅如何使用菜单

于 2013-11-09T13:38:00.423 回答