java – 如何捕获单击JMenu元素?
作者:互联网
我正在使用JMenuBar,JMenu和JMenuItem开发一个带有菜单的Java / Swing应用程序.
系统外观和下降应用于UI.
UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
我的菜单有几个顶级元素:
> JMenu“文件”工作正常,允许用户选择JMenuItems“New”,“Open”等子菜单……
>然后,我想添加第二个顶级元素“关于”(与“文件”相同的级别),在单击时显示弹出窗口.
问题很简单:如何使这个JMenu“关于”元素可点击?
我尝试了几种方法:
>将“About”元素设置为JMenuItem.但是,此元素与其他JMenu项目(如“文件”)的UI不同
>将“About”元素设置为JMenu,并在其上添加MouseListener和KeyListener.此元素将具有与其他元素相同的UI,但我必须在“关于”弹出窗口的“确定”按钮上单击两次才能捕获此事件.
还有其他方法吗?
解决方法:
我的第一个建议是在JMenu“关于”菜单中添加一个JMenuItem.因为这将与其他菜单的运行方式相匹配,并且看起来相同.当用户点击“关于”期待菜单但看到弹出窗口时,也就不足为奇了.应用程序在菜单栏的末尾有一个“帮助”菜单是相当常见的,菜单栏上有一个名为“关于”的菜单项,显示一个弹出窗口.菜单标题在单击时打开弹出窗口并不常见.
如果你真的必须做你的建议那么:
>指定外观(如Nimbus),并将JMenuItem修改为菜单项.
要么
>找到第二种选择的方法.这听起来很可行,但可能需要进行一些调整,并且更难以使UI与系统外观和感觉一起工作.
标签:java,swing,menu,jmenuitem,jmenu 来源: https://codeday.me/bug/20190626/1294948.html