4

我想在按下键盘上的任何键时调用处理程序方法,然后获取按下的键字符。所以我在 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 显示错误“处理程序方法不可访问。公开,或使用 @FXML 进行注释。”,我已经完成了。

一旦我从更改private void handleButton(KeyEvent event)private void handleButton(Event event)NetBeans 就会停止显示错误并且应用程序可以正常工作。

页面上,我找到了答案,它使用 onKeyPressed 与我完全相同,所以我真的很困惑为什么它在我的情况下不起作用。

谢谢你的帮助,

视频

4

2 回答 2

12

你可能输入错了KeyEvent。一定是javafx.​scene.​input.KeyEvent

于 2013-07-28T12:18:56.417 回答
1

用鼠标右键单击file.FXML并从选项中进行选择make controller,问题将自动解决,此错误将消失。

于 2020-03-26T14:23:50.303 回答