Javafx BorderPane с разделенной панелью

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

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

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

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

1 ответ

Решение

Установить 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();
}
Другие вопросы по тегам