我正在尝试将加速器添加到某些场景中,但在某些情况下我想要一个简单的单键加速器。我只熟悉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");
}
});
答案 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的加速器会激活。