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

时间:2016-04-30 00:44:55

标签: java javafx event-handling fxml

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

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

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

@FXML
 private void Handle () {

    btn_welcome.setOnMouseClicked((event) -> {

        System.out.println("test");

    });

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

@FXML
 private void Handle () {

    btn_welcome.setOnMouseEntered((event) -> {

        System.out.println("test");

    });

但它似乎无法发挥作用。

2 个答案:

答案 0 :(得分:5)

你不应该把另一个监听器放到控件上来让它执行函数 你在做什么,每次调用你的句柄方法时你都会放另一个监听器。

在fxml中使用onMouseEntered="#methodToBeCalled"

并在代码中创建该方法

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

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

答案 1 :(得分:-1)

你也可以试试这个

 btn_welcome.addEventHandler(MouseEvent.MOUSE_ENTERED,
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
           //your code here
          }
        });