アプリケーションで JavaFX SplitPanes を使用していますが、高さと幅が変更されたときに分割線の位置を変更する必要があります。これは、分割線の位置を固定したままにするためです。私のコードは次のとおりです。
scene.widthProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
GUIController.resetMainSplitPane();
}
});
scene.heightProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneHeight, Number newSceneHeight) {
GUIController.resetMusicSplitPane();
}
});
および resetSplitPane メソッド:
public static void resetMusicSplitPane() {
musicSplitPane.setDividerPosition(0, 0.7);
Util.err("height changed");
}
「高さが変更されました」というメッセージが表示されますが、仕切りの位置はまったく変更されていません。これは、私の変更を上書きする GUI の変更を実行する JavaFX と関係があると思います。言い換えると; 仕切りの位置を変更しましたが、ウィンドウのサイズ変更に応じて実行中のレイアウトが変更されるため、JavaFX はそれを元に戻します。