Javafx BorderPane с разделенной панелью - PullRequest
0 голосов
/ 25 октября 2018

Как разместить разделительную полосу между левым узлом и центральным узлом BorderPane?Пользовательский интерфейс должен работать следующим образом:

1) Когда размер окна приложения изменяется по горизонтали, центр изменяется по горизонтали.Когда размеры окон изменяются по вертикали, центр и левый изменяются по вертикали.(Это поведение по умолчанию BordePane).

2) Пользователь может перетащить, чтобы переместить пробел / строку между левым и центральным, чтобы изменить их размер по горизонтали.

Могу ли я объединить BorderPane и SplitPane для достижения этой цели?Есть идеи?

1 Ответ

0 голосов
/ 25 октября 2018

Установите для свойства SplitPane.resizableWithParent значение false для левого элемента:

@Override
public void start(Stage stage) {
    Region left = new Region();
    left.setStyle("-fx-background-color: red;");
    Region right = new Region();
    right.setStyle("-fx-background-color: blue;");

    // left node shouldn't resize with BorderPane
    SplitPane.setResizableWithParent(left, Boolean.FALSE);

    SplitPane center = new SplitPane(left, right);
    center.setPrefSize(400, 400);

    BorderPane root = new BorderPane(center);

    Scene scene = new Scene(root);
    stage.setScene(scene);
    stage.show();
}
...