JavaFX - 在菜单中显示加速器修饰符
Posted
技术标签:
【中文标题】JavaFX - 在菜单中显示加速器修饰符【英文标题】:JavaFX - Show accelerator modifiers in Menu 【发布时间】:2016-12-30 16:42:31 【问题描述】:我有一个简单的 JavaFX 应用程序和一个 MenuBar
。我在 fxml 中设置了一些加速器,它们工作正常,但只显示主键,而不显示修饰符。
例如:
(见下面的屏幕截图)Save 和 Save as... 都以 S
作为主键,但 Save as... 有一个额外的修饰符SHIFT_ANY
。在应用程序中,两个MenuItems
旁边只有字母S
。
同样,加速器工作正常,只是显示不正确。
有没有办法强制 JavaFX 也显示修饰符?
谢谢
这是相关菜单的 fxml。
<Menu mnemonicParsing="false" text="File">
<MenuItem mnemonicParsing="false" onAction="#newFile" text="New">
<accelerator>
<KeyCodeCombination code="N" control="ANY" meta="UP" shift="UP" shortcut="UP"/>
</accelerator>
</MenuItem>
<MenuItem mnemonicParsing="false" onAction="#open" text="Open...">
<accelerator>
<KeyCodeCombination code="O" control="ANY" meta="UP" shift="UP" shortcut="UP"/>
</accelerator>
</MenuItem>
<MenuItem mnemonicParsing="false" onAction="#save" text="Save">
<accelerator>
<KeyCodeCombination code="S" control="ANY" meta="UP" shift="UP" shortcut="UP"/>
</accelerator>
</MenuItem>
<MenuItem mnemonicParsing="false" onAction="#saveAs" text="Save as...">
<accelerator>
<KeyCodeCombination code="S" control="ANY" meta="UP" shift="ANY" shortcut="UP"/>
</accelerator>
</MenuItem>
<SeparatorMenuItem mnemonicParsing="false"/>
<MenuItem mnemonicParsing="false" onAction="#quit" text="Quit">
<accelerator>
<KeyCodeCombination code="Q" control="ANY" meta="UP" shift="UP" shortcut="UP"/>
</accelerator>
</MenuItem>
</Menu>
【问题讨论】:
【参考方案1】:我发现了问题:
在 FXML 中,我设置了 CONTROL="ANY"
而不是 CONTROL="DOWN"
。
我没有注意到错误:) 现在一切正常。
很抱歉打扰您了。
【讨论】:
以上是关于JavaFX - 在菜单中显示加速器修饰符的主要内容,如果未能解决你的问题,请参考以下文章