0

在 NetBeans 6.9 IDE 中,如果你创建一个 New Project >> Java >> Java Desktop Application并运行它,你会发现菜单项有助记符,但只有 afterALT被按下。
(netbeans 程序本身就使用这种风格的菜单。)

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

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

谢谢。

编辑: 发现问题是JFrame和JDesktop使用不同的默认外观

4

1 回答 1

2

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

  1. 控制面板
  2. 展示
  3. 外貌
  4. 效果
  5. 隐藏带下划线的字母以进行键盘导航,直到我按下 Alt 键

(我想Win7应该在某处有类似的设置。)

默认设置是打开的,所以 Java 是正确的,而 Firefox 是错误的(即使 Office 2003 也不尊重该设置)。

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

请注意,只有 Windows LAF 正确遵守该设置。主题和金属始终显示下划线。我不使用 NetBeans 或 jDesktop,但我猜它使用系统 LAF,因此下划线是正确的。

如果您仍然希望在 Windows LAF 下始终显示下划线(请三思而后行),请调用UIManager.getLookAndFeelDefaults().put("Button.showMnemonics", false),这似乎不适用于 XP,因为WindowsMenuItemUI#paintText仅检查 Vista 下的标志。您可以自己检查 Win7 JDK。


请注意,当设置打开时,有一个可接受的错误,如下所示(为您节省一些时间来解析宇宙中第二个最糟糕的错误跟踪系统。最糟糕的是我公司曾经拥有的内部 ColdFusion 系统):创建一个带有助记符的菜单,例如&File按下Alt-F,松开,Alt-F再按下,下划线消失。只要您执行任何其他操作、单击或仅按Alt自身,它们就会回来。

于 2010-10-07T04:49:47.750 回答