簡體   English   中英

使用JavaFx中的Escape按鈕關閉舞台

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM