我创建了以下函数,以关闭程序中的任何弹出Stage
:
public void escapeKeyPressed(final KeyEvent keyEvent , Stage diolog) {
if (keyEvent.getCode() == KeyCode.ESCAPE) {
diolog.close();
}
}
然后,我有一个可点击的图片,可点击该图片,弹出一个表格:
问题是当我调用函数时我得到第一个参数的错误。 我就是这样称呼的;)
escapeKeyPressed( KeyCode.ESCAPE ,dialog );
有没有人知道如何解决这个问题?
答案 0 :(得分:3)
您的方法签名为(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 );