JavaFX - SplitPane, изменение размера и пропорций
Как я могу добиться пропорционального изменения размера всего SplitPane?
public class JfxSplitPaneTest extends Application {
@Override
public void start(Stage stage) throws Exception {
SplitPane split = new SplitPane();
StackPane child1 = new StackPane();
child1.setStyle("-fx-background-color: #0000AA;");
StackPane child2 = new StackPane();
child2.setStyle("-fx-background-color: #00AA00;");
StackPane child3 = new StackPane();
child3.setStyle("-fx-background-color: #AA0000;");
split.getItems().addAll(child1, child2, child3);
//split.setDividerPositions(0.1f, 0.6f, 0.9f)
stage.setScene(new Scene(split, 400, 300));
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Запустите программу:
Установите делители, как они мне нравятся:
Сделайте ширину окна действительно маленькой (я продолжил и сделал ее еще меньше, без картинки):
Измените размер и обратите внимание, что разделители - это не то, как я их настраивал, и как они были, когда программа запускалась.
Это делает его ближе к тому, что ябуду ожидать:
child1.setMinWidth(Region.USE_PREF_SIZE)
child1.setPrefWidth(100)
child2.setMinWidth(Region.USE_PREF_SIZE)
child2.setPrefWidth(200)
child3.setMinWidth(Region.USE_PREF_SIZE)
child3.setPrefWidth(300)
за исключением того, что разделители изначально находятся в неправильном положении (пока я не изменю размер SplitPane, достаточно 1px) и при уменьшении ширины окна разделители находятся внутри компонентов.
Как я могу сделать эту работу, пожалуйста?