JAVAFX的按钮setonmouseclicked监听事件能设置多个吗
时间: 2024-04-10 16:33:44 浏览: 157
多个Button监听源码
在 JavaFX 中,按钮的 `setOnMouseClicked` 方法只能设置一个鼠标点击事件的监听器。每次调用 `setOnMouseClicked` 方法时,都会覆盖之前设置的鼠标点击事件监听器。
如果你需要为按钮添加多个鼠标点击事件监听器,你可以考虑使用 `addEventHandler` 方法。这个方法允许你添加多个事件处理程序,而不是覆盖之前的处理程序。以下是一个示例代码:
```java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Button button = new Button("点击我");
// 第一个鼠标点击事件处理程序
button.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> {
System.out.println("第一个事件处理程序");
});
// 第二个鼠标点击事件处理程序
button.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> {
System.out.println("第二个事件处理程序");
});
StackPane root = new StackPane();
root.getChildren().add(button);
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("JavaFX按钮多个鼠标点击事件监听示例");
primaryStage.setScene(scene);
primaryStage.show();
}
}
```
在上面的示例中,我们使用 `addEventHandler` 方法分别为按钮添加了两个鼠标点击事件的处理程序。当按钮被点击时,两个事件处理程序都会被执行,并分别打印一条消息到控制台。
使用 `addEventHandler` 方法添加多个事件处理程序时,事件处理程序的执行顺序是按照添加的顺序来的。你可以根据需要添加任意数量的事件处理程序。
阅读全文