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