JavaFX 菜单项在右侧显示快捷方式

Posted

技术标签:

【中文标题】JavaFX 菜单项在右侧显示快捷方式【英文标题】:JavaFX menu item show shortcuts on right hand side 【发布时间】:2014-02-08 04:10:59 【问题描述】:

以 JavaFX Scene Builder 中编辑菜单中的菜单项为例

看看他们如何在右侧显示快捷方式?有没有什么简单的方法可以使用 JavaFX 达到同样的效果?谢谢。

【问题讨论】:

【参考方案1】:

您可以在场景生成器中添加加速键,也可以像这样直接在 fxml 文件中添加它

<?import javafx.scene.input.*?>
...
<MenuItem mnemonicParsing="true" onAction="#mnuSaveAction" text="%menu.title.save" fx:id="mnuSave">
   <accelerator>
      <KeyCodeCombination  code="S" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
   </accelerator>
</MenuItem>

KeyCodeCombination 有两个构造函数,第二个例子:

<MenuItem text="Renommer..."      onAction="#rename" mnemonicParsing="true">
   <accelerator>
      <KeyCodeCombination code="F2"><modifiers></modifiers></KeyCodeCombination>
   </accelerator>
</MenuItem>

如果“in javafx”是指不使用 fxml,则可以使用 mnuSave.setAccelerator(KeyCombination);

【讨论】:

是否需要指定每个属性?比如,如果我想要 Ctrl+S,你需要指定 吗? 嗯,如果我没有指定所有属性,则会出现运行时错误(当视图加载时)。我认为默认值是可以的,但我猜不是。 @UnKnown Mine 右对齐。如果不是,请提出问题并添加屏幕截图和小示例或设置的一些详细信息。 @brian ***.com/questions/38545939/… 我在这里问。我想要和 Firefox 一样的菜单项。【参考方案2】:

如果您不使用 fxml 文件,则可以添加如下组合键。

MenuItem gotoLine = new MenuItem("Goto");
KeyCombination gotoKeyCombination = new KeyCodeCombination(KeyCode.G, KeyCombination.CONTROL_DOWN);
gotoLine.setAccelerator(gotoKeyCombination);
gotoLine.setOnAction(event -> 
            System.out.println("CTRL+G event triggered");
            System.out.println(event.toString());
 );

【讨论】:

以上是关于JavaFX 菜单项在右侧显示快捷方式的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu Desktop给程序添加快捷方式

javaFX menu控件是不是可以设置快捷键?

怎样向开始菜单添加快捷命令 电脑怎么创建运行快捷方式到开始菜单

如何将Google Chrome的更改标签快捷方式更改为Unix? [关闭]

JavaFx:快捷键

PyQt5 在打开的菜单中使用快捷方式