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

时间:2013-07-28 10:45:52

标签: java netbeans javafx-2 keyevent fxml

我想在按下键盘上的任何键时调用处理程序方法,然后按下键字符。所以我在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

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:0)

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