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