在我的javafx程序中有一个弹出窗口,它允许用户按键,然后相应地设置标签.我的问题是关键组合是底层操作系统的快捷方式,例如,如果用户按下Win + R然后Run.exe启动,但我的程序应该只将标签设置为"Win + R".我的问题是如何阻止关键事件触发操作系统快捷方式.
这是相关的代码.
public void showInput() {
Set codes = new HashSet();
Stage inputWindow = new Stage();
GridPane pane = new GridPane();
Scene scene = new Scene(pane);
Label label = new Label("Here comes the pressed keys");
scene.setOnKeyPressed(e -> {
e.consume();
int code = e.getCode().ordinal();
if (label.getText().equals("Here comes the pressed keys")){
codes.add(code);
label.setText(String.valueOf(e.getCode().getName()));
} else if (!codes.contains(code)){
codes.add(code);
label.setText(label.getText() + "+" + e.getCode().getName());
}
});
scene.setOnKeyReleased(e -> {
e.consume();
inputWindow.close();
});
pane.add(label, 0, 0);
inputWindow.setScene(scene);
inputWindow.show();
}Run Code Online (Sandbox Code Playgroud)
我试过 …