JavaFX - 处理按钮上的 MouseEntered 事件(使用 fxml)
JavaFX - handle MouseEntered event on a button (with 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");
});
但是好像不行。
您不应将另一个侦听器放在控件上以使其执行该功能。您正在做的是在每次调用 handle 方法时添加另一个侦听器。
在 FXML 中使用 onMouseEntered="#methodToBeCalled"
,然后在您的代码中创建该方法:
@FXML
public void methodToBeCalled(){
System.out.println("mouse entered");
}
就这么简单。该方法将被调用,您所要做的就是指定 id/method 名称,并使用注释。
你也可以试试这个
btn_welcome.addEventHandler(MouseEvent.MOUSE_ENTERED,
new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
//your code here
}
});
我正在尝试学习事件处理并使用看起来像这样的 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");
});
但是好像不行。
您不应将另一个侦听器放在控件上以使其执行该功能。您正在做的是在每次调用 handle 方法时添加另一个侦听器。
在 FXML 中使用 onMouseEntered="#methodToBeCalled"
,然后在您的代码中创建该方法:
@FXML
public void methodToBeCalled(){
System.out.println("mouse entered");
}
就这么简单。该方法将被调用,您所要做的就是指定 id/method 名称,并使用注释。
你也可以试试这个
btn_welcome.addEventHandler(MouseEvent.MOUSE_ENTERED,
new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
//your code here
}
});