禁用 JMenu 流动



在制作一些小应用程序时,我遇到了一个小问题。我有一个JMenuBar,几乎没有JMenus,其中一些添加了MenuListeners,它们就像普通按钮一样(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);

我想你可以使用 actionListener 而不是 MenuListener,当鼠标悬停在 menuItem 上时,becose menuSelected 调用。我不确定,但请尝试。

也许我以太复杂的方式呈现了它。

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

相关内容

  • 没有找到相关文章