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

Mar*_*ark 4 java javafx event-handling fxml

我正在尝试学习事件处理,并使用类似于fxml按钮的示例:

<Button fx:id="button" onAction="#Handle">
Run Code Online (Sandbox Code Playgroud)

和我的控制器中的以下处理程序方法:

@FXML
 private void Handle () {

    btn_welcome.setOnMouseClicked((event) -> {

        System.out.println("test");

    });
Run Code Online (Sandbox Code Playgroud)

到目前为止这个工作正常.现在我想用鼠标处理输入按钮的事件.我试过了

@FXML
 private void Handle () {

    btn_welcome.setOnMouseEntered((event) -> {

        System.out.println("test");

    });
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

Tom*_*iak 5

你不应该把另一个监听器放到一个控件来让它执行函数.你做的是你每次调用handle方法时都会放置另一个监听器.

onMouseEntered="#methodToBeCalled"在fxml中使用

并在代码中创建该方法

@FXML
public void methodToBeCalled(){
   System.out.println("mouse entered");
}
Run Code Online (Sandbox Code Playgroud)

就这么简单.将调用方法,你所要做的就是指定id /方法名,并使用注释.