1
私はマウスのクリックリスナを分割ペインの分割線に追加しようとしています。ネストされた分割ペインの分割のマウスクリックイベントを検出するにはどうすればよいですか?
これは機能しますが、この分割ペインにネストされた分割ペインがある場合、この分割ペインの分割子を取得する代わりに、子分割ペインの分割を取得します。ここに実例があります。
ご覧のとおり、クリックリスナーはprimarySplitPaneのディバイダに配置されます。ただし、リスナーはsecondarySplitPaneのディバイダに配置されます。
public class DividerTest extends Application {
public static void main (String [] args) {
launch (args);
}
@Override
public void start (Stage stage) {
VBox boxA = new VBox();
VBox boxB = new VBox();
VBox boxC = new VBox();
SplitPane secondarySplitPane = new SplitPane();
secondarySplitPane.getItems().addAll(boxB, boxC);
secondarySplitPane.setOrientation(Orientation.VERTICAL);
SplitPane primarySplitPane = new SplitPane();
primarySplitPane.getItems().addAll(boxA, secondarySplitPane);
primarySplitPane.prefWidthProperty().bind(stage.widthProperty());
primarySplitPane.prefHeightProperty().bind(stage.heightProperty());
Scene scene = new Scene(new Group(), 800, 600);
((Group) scene.getRoot()).getChildren().addAll(primarySplitPane);
stage.setScene(scene);
stage.show();
Node primaryDivider = primarySplitPane.lookup(".split-pane-divider");
primaryDivider.setOnMouseClicked((e) -> System.out.println ("Clicked"));
}
}
適切な仕分けを得るために.lookupと言うことができますか?
もっと文脈を与えることができますか?私は試して、あなたのコードが動作しています。 – DVarga
@Dvargaありがとう、詳細情報で編集。 – JoshuaD