首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用JMenu流

禁用JMenu流
EN

Stack Overflow用户
提问于 2012-05-23 23:30:17
回答 2查看 346关注 0票数 0

在使用swing开发一些小应用程序时,我遇到了一个小问题。我有一个带有少量JMenus的JMenuBar,其中一些添加了MenuListeners,它们的行为就像普通的按钮(menuSelected会打开一个对话框)。问题是,当我点击“普通”菜单时,JMenuItems列表展开,然后将光标移到“按钮”菜单上,MenuListener会认为它被点击了,并指出了适当的方法。如何禁用它?下面是删除了自定义名称的代码的一部分:

代码语言:javascript
运行
复制
 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);
EN

回答 2

Stack Overflow用户

发布于 2012-05-23 23:53:55

我想你可以使用actionListener而不是MenuListener,因为当鼠标停留在菜单项上时会调用menuSelected。我不确定,但可以试试。

票数 0
EN

Stack Overflow用户

发布于 2012-05-25 04:48:29

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10723204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档