编程语言
首页 > 编程语言> > java – 如何捕获单击JMenu元素?

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