У меня есть приложение 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();
}
Если я щелкнул в любом месте пустого пространства, EventHandler
вызывает метод handle()
, но если я нажму на button
, метод handle()
не будет вызван. В моем приложении много кнопок и других интерактивных элементов, поэтому мне нужен подход, чтобы ловить клики по этим элементам, без необходимости вручную добавлять новый обработчик для каждого отдельного элемента.