SingleFrameApplication不需要ALT来激活menuitem助记符?

时间:2010-10-06 20:51:49

标签: java swing netbeans menuitem mnemonics

在NetBeans 6.9 IDE中,如果您创建了一个 New Project >> Java >> Java Desktop Application并运行它,您会发现菜单项有助记符,但仅在按下ALT后才会出现。 (netbeans程序本身使用这种菜单。)

但是,如果您创建一个新的File >> Swing GUI Forms >> JFrame Form,并添加一个带有助记符的简单菜单栏,则运行JFrame,将始终显示助记符而无需按ALT。这是我更喜欢的。
(Firefox使用这种菜单风格)

我的想法是org.jdesktop.application会覆盖默认设置,但这只是猜测。任何人都知道如何使SingleFrameApplication不需要按ALT

感谢。

修改 发现问题是JFrame和JDesktop使用不同的默认外观和感觉

1 个答案:

答案 0 :(得分:2)

这是一个Windows设置。在XP中转到:

  1. 控制面板
  2. 显示
  3. 外观
  4. 效果
  5. 隐藏用于键盘导航的带下划线的字母,直到我按下Alt键
  6. (我猜想,Win7应该在某处设置类似的设置。)

    默认设置为on,因此Java正确且Firefox 错误(即使Office 2003也不尊重该设置)。

    取消选中它,您将始终在Java中看到助记符下划线。

    请注意,只有Windows LAF才能正确考虑该设置。 Motif和Metal总是显示下划线。我不使用NetBeans或jDesktop,但我猜它使用系统LAF,因此下划线是正确的。

    如果您仍想在Windows LAF下始终显示下划线(请在开始之前请三思),请致电UIManager.getLookAndFeelDefaults().put("Button.showMnemonics", false) NOT 似乎适用于XP,因为{{1}只检查Vista下的标志。您可以自己检查Win7 JDK。


    请注意,设置打开时有an accepted bug,这样就可以了(节省一些时间来解析宇宙中第二个最糟糕的错误跟踪系统。最糟糕的是我公司内部的ColdFusion系统曾经有过):创建一个带有助记符的菜单,例如WindowsMenuItemUI#paintText,按&File,释放,再次按Alt-F,下划线就消失了。只要您执行任何其他操作,单击或仅按Alt-F,它们就会立即返回。