2016-03-24 8 views
1

JavaFXクラスファイルをコントローラクラスとFXMLファイルにリファクタリングしています。古いJavaFXクラスでは、すべてのマウスイベントのセーフティネットを作成する必要がありました。その理由は、マウスがシーン内のノードにない間に発生するマウスイベントがコード内にすべてのマウスイベント。 FXMLの方がいいですか?コンテナ内のすべてのマウスイベントのキャプチャ

+2

差はあなたが得る機能的には全く基本的にありません:FXMLは、そのオブジェクトを指定するだけで(おそらくより便利に)別の方法であります作成する必要がありますプロパティとそれらに設定する必要があります。とにかく、マウスイベントを処理するために最下層に四角形を配置したい理由はまったくありません。コンテナ自体に同じマウスリスナーを登録するだけではないのはなぜですか? –

+0

イベントは、シーングラフツリー([* 1 Processing Events *](http://docs.oracle.com/javase/8/javafx/events-tutorial/processing.htm#CEGJAAFD)参照)を上下に移動します。手動で「セーフティネット」を追加する必要はありません(James_Dのコメントを参照)... – fabian

答えて

1

あなただけのシーン自体にイベントハンドラを追加することができます。

scene.addEventHandler(MouseEvent.ANY, event -> { 
    System.out.println(event); 
}); 
関連する問題