Command+T 的 JavaFX KeyCombination(新选项卡)

far*_*ris 5 java javafx keyevent

我正在尝试为我的浏览器应用程序制作一个按键监听器,以便 Command+T 以与大多数实际浏览器相同的方式触发打开一个新选项卡。

为此查找了一些可能的解决方案,看起来我可能必须使用,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());
});
Run Code Online (Sandbox Code Playgroud)

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

Sla*_*law 6

我相信你正在寻找KeyCombination.SHORTCUT_DOWN

KeyCombination

...

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

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