首页 > 解决方案 > 用于 Command+T 的 JavaFX 组合键(新选项卡)

问题描述

我正在尝试为我的浏览器应用程序创建一个按键侦听器,以使用与大多数实际浏览器相同的方式来触发打开一个新选项卡。

查找了一些可能的解决方案,看起来我可能必须使用KeyCombination但是我找不到任何命令键。到目前为止,我发现的最接近的是 Control+T。

private KeyCombination newTab = new KeyCodeCombination(KeyCode.T, KeyCombination.CONTROL_DOWN);
...
root.setOnKeyPressed(event -> {
    if (newTab.match(event))
        tabPane.getTabs().add(new Tab());
});

我知道这目前工作正常,但我真的想使用命令而不是控制,因为它更自然和直观。

标签: javajavafxkeyevent

解决方案


我相信你正在寻找KeyCombination.SHORTCUT_DOWN.

KeyCombination

...

shortcut修饰符用于表示主机平台键盘快捷键中常用的修饰键。例如control,在 Windows 上和metaMac 上的(命令键)。通过使用shortcut键修饰符,开发人员可以创建独立于平台的快捷方式。因此,“Shortcut+C”组合键在内部处理为 Windows 上的“Ctrl+C”和 Mac 上的“Meta+C”。

从该文档中,看起来他们将“命令”称为“元”。如果您不想使用跨平台SHORTCUT_DOWN,您可以KeyCombination.META_DOWN改用。


推荐阅读