[英]Close Stage with Escape button in JavaFx
我創建了以下函數,以關閉程序中的任何彈出Stage
:
public void escapeKeyPressed(final KeyEvent keyEvent , Stage diolog) {
if (keyEvent.getCode() == KeyCode.ESCAPE) {
diolog.close();
}
}
然后,我有一個可點擊的圖像,可以在其中單擊並彈出一個表單:
問題是當我調用該函數時,第一個參數出現錯誤。 這就是我所說的;)
escapeKeyPressed( KeyCode.ESCAPE ,dialog );
有誰知道我該如何解決?
您的方法簽名是(final KeyEvent keyEvent, Stage diolog)
,您將KeyCode
作為第一個參數傳遞,它不是KeyEvent
。
您可以改為傳遞原始的KeyEvent
來實現簽名,如下所示:
yourPopUp.setOnKeyPressed((KeyEvent event) -> escapeKeyPressed(event, dialog ));
但是,如果您將更新方法簽名以直接接受KeyCode
,它將更加干凈:
public void escapeKeyPressed(KeyCode keyCode , Stage diolog) {
if (keyCode == KeyCode.ESCAPE)
diolog.close();
}
在這種情況下,您可以將原始呼叫設為:
escapeKeyPressed(KeyCode.ESCAPE, dialog );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.