【问题标题】:KeyCodeCombination Control + LEFT or Ctrl + RIGHT key in JavaFXJavaFX 中的 KeyCodeCombination Control + LEFT 或 Ctrl + RIGHT 键
【发布时间】:2016-09-21 00:28:48
【问题描述】:

我正在尝试构建一个视频播放器。我想使用 CtrlLEFTRIGHT 键来寻找媒体。

我尝试了两种方式:

KeyCombination.keyCombination("Ctrl+RIGHT").match(e);

KeyCodeCombination(KeyCode.LEFT, KeyCombination.CONTROL_DOWN).match(e);

其他组合键有效,但这些无效。

有什么方法可以实现吗?

【问题讨论】:

    标签: java javafx keycode


    【解决方案1】:

    您可以尝试使用SHORTCUT_DOWN 而不是CONTROL_DOWN,因为第一个与平台无关。

    返回主机平台通用快捷键修饰符是否为 下这个事件。这个常用的快捷键修饰符是修饰键 这通常用于主机平台上的快捷方式。那是为了 Windows 上的示例控件和 Mac 上的 meta(命令键)。

    那么你有几个机会,比如:

    node.setOnKeyPressed(e -> {
        if (new KeyCodeCombination(KeyCode.LEFT, KeyCombination.SHORTCUT_DOWN).match(e)) {
            // ...
        }
    });
    

    node.setOnKeyPressed(e -> {
        if (e.getCode() == KeyCode.LEFT && e.isShortcutDown()) {
            // ...
        }
    });
    

    【讨论】:

    • 是的,我可以使用,但我不想使用。我特别想使用Control+LEFT。您可以在 VLC Player 和 KMPlayer 上看到用户可以使用这些组合键搜索媒体。顺便问一下,你能告诉我,哪一个是快捷键吗?我尝试使用您提供的组合键,但无法实现。我使用的是 Windows 8.1 操作系统。
    • 快捷键是Windows上的控制键。你能把你现在拥有的东西贴出来吗?提供帮助会容易得多。
    • 这里是-if (keyCombinationControlRight.match(e) || new KeyCodeCombination(KeyCode.RIGHT, KeyCombination.SHORTCUT_DOWN).match(e)) { System.err.println("CTRL+RIGHT"); mediaPlayer.seek(new Duration(mediaPlayer.getCurrentTime().toMillis() + longSeekTime.toMillis())); } else if (keyCombinationControlLeft.match(e)|| new KeyCodeCombination(KeyCode.LEFT, KeyCombination.SHORTCUT_DOWN).match(e)) { System.err.println("CTRL+LEFT"); mediaPlayer.seek(new Duration(mediaPlayer.getCurrentTime().toMillis() - longSeekTime.toMillis())); }
    • 我想更新问题。另外,请完整的代码:你附加监听器的目的是什么?
    • 很高兴听到。快乐寻找! :)
    猜你喜欢
    • 2021-09-04
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多