java - JavaFx 中使用 Escape 按钮关闭舞台

标签 java javafx stage

我创建了以下函数来关闭程序中的任何弹出 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 );

关于java - JavaFx 中使用 Escape 按钮关闭舞台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39325893/

相关文章:

java - 尽管使用了安全removeIF,但出现了ConcurrentModificationException

java - ArrayList显示不正确

window - JavaFX 2 : Prevent other Stages from stealing focus from primary Stage

java - Spring Data Elasticsearch文档未反序列化

java - 动态字段 thymeleaf 列表迭代

java - 将映射键从集合转换为 double - java

java - 如何在 NetBeans 7.1 RC1 中显示 JavaFX Composer View ?

java - JFX 将图像向上和向下缩放到父级

popup - JavaFX 2 : Draggable popup tool window?

java - LibGDX,需要在可移植应用程序和舞台中单击事件,如何?