30

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()クリックしてもメソッドは呼び出されません。私のアプリケーションには多くのボタンやその他のインタラクティブな要素があるため、要素ごとに新しいハンドラーを手動で追加しなくても、それらの要素のクリックをキャッチする方法が必要です。buttonhandle()

4

1 に答える 1