java - FXML 中的 "Handler method not accessible"错误(仅当我使用 "Event"或 "ActionEvent"参数创建方法时才有效)

标签 java netbeans javafx-2 keyevent fxml

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

相关文章:

java - 如何在目录中搜索以String开头的文件

java - OpenSSL 证书在 tomcat 8 中给出 'Invalid keystore format'

java - Netbeans 找不到外部 jar

java - NetBeans 更改 HashMap 中键的顺序

JavaFX TextArea 包含 String.split() 的空行?

templates - JavaFX 2.0-样式/模板现有控件

java - JDK 1.6 和 servlet 容器

java - 使用扫描仪时输入未分配给我的变量

Java Netbeans 绝对路径

java - 为什么 getMetadata() 不适用于 javafx 中的 m4a 文件?