【问题标题】:JavaFX - handle MouseEntered event on a button (with fxml)JavaFX - 处理按钮上的 MouseEntered 事件(使用 fxml)
【发布时间】:2016-08-25 06:35:29
【问题描述】:

我正在尝试学习事件处理,并用一个看起来像这样的 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");

    });

但它似乎不起作用。

【问题讨论】:

    标签: java javafx event-handling fxml


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 推荐大家下载使用SceneBuilder,学习javafx更快,效率更高。
    【解决方案2】:

    你也可以试试这个

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

    【讨论】:

      猜你喜欢
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 2019-08-05
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多