【问题标题】:Disable Alt + F4 for JavaFX为 JavaFX 禁用 Alt + F4
【发布时间】:2017-03-22 01:33:39
【问题描述】:

我需要使用 Alt + F4 键盘快捷键禁用关闭事件。现在,我正在尝试为这个按键过滤场景中的事件并使用它,但没有任何成功,无论如何都会发生关闭事件。遵循我的代码的以下部分:

scene.addEventFilter(KeyEvent.KEY_PRESSED, event -> {
    if (event.isAltDown() && event.getCode().equals(KeyCode.F4)) {
        event.consume();
    }
});

primaryStage.setOnCloseRequest((ev) -> System.exit(0));

【问题讨论】:

  • 你用primaryStage.addEventFilter尝试过同样的事情吗?
  • 是的。同样的行为。
  • 我对 JavaFX 了解不多,但我认为您可能从错误的角度解决了这个问题。也许您只需要阻止 Java 在任何情况下自行退出,然后手动处理它应该手动处理的情况。

标签: java javafx


【解决方案1】:

您可以尝试禁用隐式退出:

Platform.setImplicitExit(false);
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
    @Override
    public void handle(WindowEvent event) {
        event.consume();
    }
});

然后创建一个在点击时关闭应用程序的按钮:

Button btn = new Button();
btn.setText("Close");
btn.setOnAction(new EventHandler<ActionEvent>() {

    @Override
    public void handle(ActionEvent event) {
       System.exit(0);
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多