JavaFX - 处理按钮上的 MouseEntered 事件(使用 fxml)

标签 java javafx event-handling fxml

我正在尝试学习事件处理并用一个看起来像这样的 fxml 按钮做了一个例子:

<Button fx:id="button" onAction="#Handle">

以及我的 Controller 中的以下处理程序方法:

@FXML
 private void Handle () {

    btn_welcome.setOnMouseClicked((event) -> {

        System.out.println("test");

    });

到目前为止,一切正常。现在我想处理用鼠标输入按钮的事件。我试过了

@FXML
 private void Handle () {

    btn_welcome.setOnMouseEntered((event) -> {

        System.out.println("test");

    });

但是好像不行。

最佳答案

您不应该将另一个监听器放在控件上以使其执行该功能。您所做的是在每次调用 handle 方法时添加另一个监听器。

在 FXML 中使用 onMouseEntered="#methodToBeCalled",并在您的代码中创建该方法:

@FXML
public void methodToBeCalled(){
   System.out.println("mouse entered");
}

就这么简单。该方法将被调用,您所要做的就是指定 id/方法名称,并使用注释。

关于JavaFX - 处理按钮上的 MouseEntered 事件(使用 fxml),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36949514/

相关文章:

java - 在 StackPane 中的面积图上叠加节点

JavaFX - 更新 TableView SQLite

java - 文件路径中的斜杠字符在 javafx 媒体中创建异常

c# - 在 Multi-Tenancy Web 应用程序中使用事件委托(delegate)

java - 如果使用相同的负载发出另一个请求,应使用哪种 RequestBody 类型?

java - 简单的 Java 赛车游戏

java - 如何在java中打印带换行符的字符串

mysql - 循环中的事件处理程序似乎使其下面编写的每个代码都无效

c# - 帮助解决错误 "' 对象'不包含 'Text' 的定义“

java - 在 Maven 子模块中使用 Spring @PropertySource