FXML中的“无法访问处理程序方法”错误(仅当我使用“ Event”或“ ActionEvent”参数创建方法时有效)

问题描述 投票:4回答:2

我想在按下键盘上的任何键时调用处理程序方法,然后获得按下的键字符。所以我在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就会停止显示错误并且应用程序可以运行。

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

感谢您的帮助,>

Vid

我想在按下键盘上的任何键时调用处理程序方法,然后获得按下的键字符。所以我在fxml文件中为按钮写了这一行:

java netbeans javafx-2 keyevent fxml
2个回答
10
投票

您可能输入了错误的KeyEvent。它必须是javafx.​scene.​input.KeyEvent


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.