【问题标题】:SingleFrameApplication that does NOT require ALT to activate menuitem mnemonics?不需要 ALT 来激活 menuitem 助记符的 SingleFrameApplication?
【发布时间】:2010-10-06 20:51:48
【问题描述】:

在 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 使用了不同的默认 Look and Feels

【问题讨论】:

  • 您使用的是哪个 Windows 版本?我在 XP 上的 Firefox 3.6.10 需要 Alt,这是所有本机应用程序所做的。使用 JDK6 运行您的第一个代码示例也需要 Alt。
  • 我在家里使用 WinXP、FF 3.6.10,在工作中使用 Windows 7、FF 3.6.10。 Firefox 和我的第一个示例都在两台机器上始终显示带有“F”下划线的文件。
  • 对不起,我不明白“助记符将始终出现”您的意思是始终显示下划线。看我的回答。

标签: java swing netbeans menuitem mnemonics


【解决方案1】:

这是 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你可以自己查。


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

【讨论】:

  • 我忘了处理 jdesktop 部分,但正如您从我的回答中看到的那样,无论它做什么都可能不正确,因为您应该尊重平台设置。顺便说一句,motif 和 synth lafs 总是显示下划线。我希望 nimbus 做对了。
  • 对不起,我在之前的评论中指的是金属 LAF。它不尊重 Windows 设置。 jDesktop 做得对(我之前的评论中的另一个脑残)以尊重设置。请参阅我的更新答案。
  • 你是对的! UIManager.getLookAndFeelDefaults().put("Button.showMnemonics", true) 成功了。我错误地报告说 JFrame 和 JDesktop 都在使用金属 LAF。 (我在构造函数调用之前而不是之后运行System.out.println(UIManager.getLookAndFeel());。)非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 2012-05-06
相关资源
最近更新 更多