我在我的应用程序上使用 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");
}
我确实收到“高度已更改”的消息,但分隔线位置根本没有更改。我认为这与 JavaFX 执行覆盖我的更改的 gui 更改有关。换句话说; 我更改了分隔线的位置,但 JavaFX 将其更改回来,因为它的执行布局会随着窗口大小的调整而改变。