3

我正在尝试将加速器添加到某些场景中,但在某些情况下我想要一个简单的一键加速器。我只熟悉 KeyCodeCombination,它似乎不允许我不使用修饰符。

奇怪的是,我使用了修饰符 + ANY(例如 SHIFT_ANY),但它似乎并不总是有效(对于我的 F10 加速器,它与 shift 键向上或向下一起工作,但对于我的 F2 加速器,它仅适用于Shift键向下)。

有没有办法用 KeyCodeCombination 制作一个按键加速器?还是我必须使用其他东西?或者有人可以告诉我为什么我的 F2 组合键与 SHIFT_ANY 不能与 UP 键一起使用?

这是我的加速器代码:

    KeyCodeCombination f2 = new KeyCodeCombination(KeyCode.F2, KeyCombination.SHIFT_ANY);
    KeyCodeCombination f10 = new KeyCodeCombination(KeyCode.F10, KeyCombination.SHIFT_ANY);

    thisScene.getAccelerators().put(f2, new Runnable() {

        @Override
        public void run() {
            buttonCancel.fire();
            System.out.println("F2 pressed");
        }
    });
    thisScene.getAccelerators().put(f10, new Runnable() {

        @Override
        public void run() {
            buttonSave.fire();
            System.out.println("F10 pressed");
        }
    });
4

1 回答 1

1

有没有办法用 KeyCodeCombination 制作一个按键加速器?

是的。只需使用 KeyCodeCombination 构造函数,不要传递任何修饰符。例如,在 James_D 的评论中:

new KeyCodeCombination(KeyCode.F2)

谁能告诉我为什么我的 F2 组合键与 SHIFT_ANY 不能与 UP 键一起使用?

不,在我的键盘上,F2+SHIFT_ANY 的加速器会在使用 shift 键 UP(桌面、美国、Win 7、Java 8b129)按下 F2 时触发。

于 2014-03-27T20:04:48.373 回答