0

在摇摆中制作一些小应用程序时,我遇到了一个小问题。我有一个 JMenuBar,其中有几个 JMenu,其中一些添加了 MenuListener,它们的作用类似于普通按钮(menuSelected 打开一个对话框)。问题是,当我单击“普通”菜单并且 JMenuItems 列表展开然后将光标移到“按钮”菜单上时,MenuListener 认为它已被单击并启动适当的方法。如何禁用它?这是清除自定义名称的代码的一部分:

 JMenuBar bar = new JMenuBar();

 addPlayerButton = new JMenu("Button");

 addPlayerButton.addMenuListener(new MenuListener() {

     @Override
     public void menuSelected(MenuEvent e) {
         addPlayerButton.setSelected(false);
         //here comes my method to show custom dialog
     }

     @Override
     public void menuDeselected(MenuEvent e) {
     }

     @Override
     public void menuCanceled(MenuEvent e) {
     }
 });

 bar.add(addPlayerButton);

 JMenu menu = new JMenu("Menu");
 bar.add(menu);
4

2 回答 2

0

我认为您可以使用 actionListener 而没有 MenuListener,因为当鼠标悬停在 menuItem 上时 menuSelected 调用。我不确定,但请尝试。

于 2012-05-23T15:53:55.260 回答
0

也许我以过于复杂的方式呈现它。

想象一下,您有一个带有 MenuBar 和两个菜单的框架。您单击其中一个,它会显示它的内容。现在将光标移到第二个菜单上,第一个关闭,第二个打开。我只是想在这种情况下不要打开第二个。

于 2012-05-24T20:48:28.763 回答