4

我正在使用 JMenuBar、JMenu 和 JMenuItem 开发一个带有菜单的 Java/Swing 应用程序。

系统外观应用于 UI。

UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );

我的菜单有几个顶级元素:

  • JMenu“文件”工作正常,允许用户选择子菜单,如 JMenuItems“新建”、“打开”...

  • 然后,我想添加第二个顶级元素“关于”(与“文件”相同的级别),单击它时会显示一个弹出窗口。

问题很简单:如何使这个 JMenu“关于”元素可点击?

我尝试了几种方法:

  1. 将“About”元素设置为JMenuItem。但是,此元素的 UI 与其他 JMenu 项目(如“文件”)不同

  2. 将“About”元素设置为JMenu并在其上添加MouseListenerKeyListener。此元素将具有与其他元素相同的 UI,但我必须在“关于”弹出窗口的“确定”按钮上单击两次才能捕获此事件。

还有其他解决方案吗?

4

1 回答 1

4

我的第一个建议是在 JMenu“关于”菜单中添加一个 JMenuItem。因为这将匹配其他菜单的操作方式并且看起来相同。当用户点击“关于”期待一个菜单但看到一个弹出窗口时,这也不足为奇。应用程序在菜单栏的末尾有一个“帮助”菜单是相当常见的,该菜单有一个名为“关于”的菜单项,显示一个弹出窗口。菜单标题在单击时打开弹出窗口并不常见。

如果你真的必须按照你的建议去做,那么:

  • 指定外观(如 Nimbus),并将 JMenuItem 修改为看起来像菜单项。

或者

  • 为你的第二个选项找到一种工作方式。这听起来可行,但可能需要更多的调整,并且更难让 UI 与系统外观和感觉正常工作。
于 2011-07-27T17:01:40.167 回答