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

use*_*483 4 java netbeans keyevent javafx-2 fxml

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

<Button fx:id="button" layoutX="126.0" layoutY="90.0" onKeyPressed="#handleButton" text="Test!" />
Run Code Online (Sandbox Code Playgroud)

当按下任何键时,这应该调用控制器类中的handleButton方法并将KeyEvent参数传递给它.所以我在里面写了这个方法:

@FXML
private void handleButton(KeyEvent event) {
    System.out.println(event);
}
Run Code Online (Sandbox Code Playgroud)

在fxml文件中,NetBeans显示错误"Handler方法无法访问.使用@FXML公开或注释.",我已经完成了.

当我从改变private void handleButton(KeyEvent event)private void handleButton(Event event)NetBeans的停止示值误差和应用的工作方式.

这个页面上我找到了答案,它使用的onKeyPressed和我完全一样,所以我真的很困惑为什么它不适用于我的情况.

谢谢你的帮助,

VID

Ulu*_*Biy 10

你可能输错了KeyEvent.一定是javafx.?scene.?input.KeyEvent.