2017-03-21 33 views
2

我需要使用Alt + F4禁用關閉事件鍵盤快捷鍵。現在,我試圖過濾我的場景中的事件以進行按鍵並使用它,但沒有取得任何成功,無論如何都會發生關閉事件。跟隨我的代碼波紋管部分:爲JavaFX禁用Alt + F

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

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

有無你用'primaryStage.addEventFilter'嘗試了同樣的事情? – assylias

+0

是的。同樣的行爲。 – daniboy000

+1

我對JavaFX並不瞭解,但我認爲你可能從錯誤的角度來攻擊這個問題。也許你只需要阻止Java從任何情況下退出,然後處理它應該手動進行的情況。 – Jdman1699

回答

5

你可以嘗試禁用隱退出:

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); 
    } 
});