是否可以使用没有修饰符的KeyCodeCombination?还是我需要使用别的东西?

时间:2014-03-27 19:13:26

标签: javafx acceleratorkey

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

奇怪的是,我已经使用了修饰符+ ANY(例如SHIFT_ANY),但它似乎并不是一直有效(对于我的F10加速器,它可以使用shift键向上或向下,但对于我的F2加速器它只有它使用shift键DOWN)。

有没有办法只使用KeyCodeCombination制作一个关键加速器?或者我必须使用别的东西?或者有人能告诉我为什么我的F2键与SHIFT_ANY的组合不适用于Shift键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");
        }
    });

1 个答案:

答案 0 :(得分:1)

  

有没有办法只使用KeyCodeCombination制作一个关键加速器?

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

new KeyCodeCombination(KeyCode.F2)
  

有人可以告诉我为什么我的F2键与SHIFT_ANY的组合不适用于Shift键UP?

在我的键盘上,用Shift键UP(桌面,美国,Win 7,Java 8b129)按下F2时,F2 + SHIFT_ANY的加速器会激活。