我正在尝试学习事件处理并使用类似于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");
});
但它似乎无法发挥作用。
答案 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
}
});