我想在按下键盘上的任意键时调用处理程序方法,然后获取按下的键字符。所以我在 fxml 文件中为按钮写了这一行:
<Button fx:id="button" layoutX="126.0" layoutY="90.0" onKeyPressed="#handleButton" text="Test!" />
当按下任何键时,这应该调用 Controller 类中的 handleButton 方法并将 KeyEvent 参数传递给它。所以我在里面写了这个方法:
@FXML
private void handleButton(KeyEvent event) {
System.out.println(event);
}
在 fxml 文件中,NetBeans 显示错误“Handler method is not accessible. Make public, or annotate with @FXML.”,我已经完成了。
当我从 private void handleButton(KeyEvent event)
更改为 private void handleButton(Event event)
时,NetBeans 停止显示错误并且应用程序运行。
关于 this我找到答案的页面,它使用的 onKeyPressed 与我使用的完全相同,所以我真的很困惑为什么它在我的情况下不起作用。
谢谢你的帮助,
视频
最佳答案
您可能导入了错误的 KeyEvent
。它必须是 javafx. scene. input.KeyEvent
。
关于java - FXML 中的 "Handler method not accessible"错误(仅当我使用 "Event"或 "ActionEvent"参数创建方法时才有效),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17907421/