我想在按下键盘上的任何键时调用处理程序方法,然后按下键字符。所以我在fxml文件中为这个按钮编写了这一行:
<Button fx:id="button" layoutX="126.0" layoutY="90.0" onKeyPressed="#handleButton" text="Test!" />
当按下任何键时,这应该调用控制器类中的handleButton方法并将KeyEvent参数传递给它。所以我在里面写了这个方法:
@FXML
private void handleButton(KeyEvent event) {
System.out.println(event);
}
在fxml文件中,NetBeans显示错误“Handler方法无法访问。使用@FXML进行公开或注释。”,我已经完成了。
一旦我从private void handleButton(KeyEvent event)
更改为private void handleButton(Event event)
,NetBeans就会停止显示错误和应用。
在this页面上,我找到了答案,它使用的onKeyPressed与我完全一样,所以我真的很困惑,为什么它在我的情况下不起作用。
感谢您的帮助,
VID
答案 0 :(得分:9)
您可能导入了错误的KeyEvent
。它必须是javafx.scene.input.KeyEvent
。
答案 1 :(得分:0)
在您的file.FXML
上单击鼠标右键,然后从选项make controller
中进行选择,问题将自动解决,该错误将消失。