2016-04-30 54 views
3

我想了解事件处理和与FXML按钮看上去像是打了个比方:的JavaFX - 上的按钮(带FXML)处理事件的mouseEntered

<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"); 

    }); 

但它似乎没有工作。

回答

4

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

使用onMouseEntered="#methodToBeCalled"

和代码只是创建方法

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

它是simple.Method将被调用,所有你需要做的就是指定ID /方法的名称,并使用注解。

+0

哇哦,它就是这么简单。谢谢! – Mark

+0

我建议你下载并使用SceneBuilder,你会更快地学习javafx,并且更高效。 –

-1

你也可以试试这个

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