2011-07-27 80 views
4

我正在用菜单使用JMenuBar,JMenu和JMenuItem开发Java/Swing应用程序。如何捕捉单击JMenu元素?

系统外观和下降应用于用户界面。

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

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

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

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

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

我尝试几种方法:

  1. 将 “关于” 元素作为的JMenuItem。然而,这种元素有没有,其他JMenu的项目,如“文件”

  2. 将“关于”元素作为JMenu的并添加的MouseListener并在其上一个的KeyListener相同的用户界面。该元素将具有与其他人相同的用户界面,但我必须在“关于”弹出式窗口的“确定”按钮上单击两次来捕获此事件。

其他解决方案?

回答

4

我的第一个建议是在JMenu“关于”菜单中添加一个JMenuItem。因为这与其他菜单的操作方式相同,并且看起来相同。当用户点击“关于”期待菜单但看到弹出窗口时,也不会感到意外。在菜单栏的最后有一个名为“关于”的菜单项显示一个弹出菜单的“帮助”菜单是相当普遍的。菜单标题在点击时打开弹出窗口并不常见。

如果你真的要做你的建议,那么:

  • 指定外观和感觉(如雨云),并修改的JMenuItem看起来像一个菜单项。

  • 查找你的第二个选择的工作方式。这听起来可行,但可能需要更多的调整,并且使系统界面与系统外观和感觉一起工作会更加困难。
+1

我会同意,它是一个顶级菜单项打开对话框不好juju。 – Chris

+0

感谢您的回答。我将执行“帮助>关于”菜单,因为它似乎是一个意大利面条泥,使顶层“关于”菜单可以通过良好的用户界面进行点击。如果客户同意这个解决方案,我会在稍后看到。再次感谢! – Sly