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();
}