我对应该放置操作逻辑(当用户从弹出窗口中选择菜单项时发生的情况)的位置感到有点困惑。目前,我将它存储在 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);
编译成功。它确实按预期显示了弹出菜单,但是在弹出菜单中选择一个菜单选项后,一切都没有了。没有消息显示。我需要把它放在别的地方吗?
最佳答案
你必须添加 MouseListener至 JMenuItems
添加适当的监听器以使用 Swing Action , ActionListener对于JMenuItems , 阅读 Oracle 教程以获取工作代码示例
关于java - 您将 JPopupMenu 的逻辑存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19876551/