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

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

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

【问题讨论】:

    标签: java javafx scenebuilder


    【解决方案1】:

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

    <?import javafx.scene.input.*?>
    ...
    <MenuItem mnemonicParsing="true" onAction="#mnuSaveAction" text="%menu.title.save" fx:id="mnuSave">
       <accelerator>
          <KeyCodeCombination alt="UP" 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,你需要指定 alt="UP" 吗?
    • 嗯,如果我没有指定所有属性,则会出现运行时错误(当视图加载时)。我认为默认值是可以的,但我猜不是。
    • @UnKnown Mine 右对齐。如果不是,请提出问题并添加屏幕截图和小示例或设置的一些详细信息。
    • @brian stackoverflow.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());
     });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 2018-03-03
      相关资源
      最近更新 更多