相关疑难解决方法(0)

使用JavaFX在任何地方处理鼠标事件

我有一个JavaFX应用程序,我想在场景中的任何地方添加一个鼠标单击的事件处理程序.以下方法可以正常工作,但不完全按我想要的方式工作.这是一个说明问题的示例:

public void start(Stage primaryStage) {
    root = new AnchorPane();
    scene = new Scene(root,500,200);
    scene.setOnMousePressed(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
            System.out.println("mouse click detected! "+event.getSource());
        }
    });

    Button button = new Button("click here");
    root.getChildren().add(button);

    primaryStage.setScene(scene);
    primaryStage.show();
}
Run Code Online (Sandbox Code Playgroud)

如果我单击空白处的任何位置,则EventHandler调用该handle()方法,但如果单击buttonhandle()方法,则不会调用该方法.我的应用程序中有许多按钮和其他交互元素,因此我需要一种方法来捕获这些元素的点击,而无需为每个元素手动添加新的处理程序.

java javafx event-handling mouseevent

25
推荐指数
1
解决办法
6万
查看次数

如何从 JavaFX 中的一个类处理多种事件类型?

在 JavaFX 中,是否可以从一个类中处理多种事件类型(例如 ActionEvent、MouseEvent 等),而无需匿名 EventHandler?我尝试了以下操作,但这只是创建了一个编译时错误。

public class GUI extends Application implements EventHandler<ActionEvent>,
                                                EventHandler<MouseEvent>
Run Code Online (Sandbox Code Playgroud)

java javafx javafx-2

2
推荐指数
1
解决办法
4476
查看次数

标签 统计

java ×2

javafx ×2

event-handling ×1

javafx-2 ×1

mouseevent ×1