JavaFX - 在菜单中显示加速器修饰符

Posted

技术标签:

【中文标题】JavaFX - 在菜单中显示加速器修饰符【英文标题】:JavaFX - Show accelerator modifiers in Menu 【发布时间】:2016-12-30 16:42:31 【问题描述】:

我有一个简单的 JavaFX 应用程序和一个 MenuBar。我在 fxml 中设置了一些加速器,它们工作正常,但只显示主键,而不显示修饰符。

例如: (见下面的屏幕截图)SaveSave 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 - 在菜单中显示加速器修饰符的主要内容,如果未能解决你的问题,请参考以下文章

是否可以有没有修饰符的 KeyCodeCombination?还是我需要使用其他东西?

有没有办法“子类化”修饰符?

java修饰符在含义以及在eclipse下的显示

SwiftUI 将覆盖添加到整个屏幕

expresso 商店修饰符

java中final修饰符的使用