Есть StackPane с панелями (аля наполненный BorderPane).
В один прекрасный момент при добавлении нового дочернего элемента, который оказывается больше остальных, StackPane растягивается под его размер и заодно растягивает остальные элементы за собой. Как сделать так, чтобы "большой" элемент размещался так как есть, но остальные оставались неизменными? (имо, это происходит из за того, что меняется размер родительского элемента. как сделать дочерние эл-ты "автономными"?)
Пример:
public class StackPaneSet extends StackPane {
private final Map<Integer, Pane> stack;
private final int baseLayoutZIndex = 100;
public StackPaneSet() {
stack = new TreeMap<>();
}
private void updateLayout() {
getChildren().clear();
getChildren().addAll(stack.values());
}
public StackBorderPane setTop(Node node) {
BorderPane base = getDefaultPane();
base.setTop(node);
return this;
}
public StackBorderPane setCenter(Node node) {
BorderPane base = getDefaultPane();
base.setCenter(node);
return this;
}
public int getDefaultZIndex() {
return baseLayoutZIndex;
}
public BorderPane getDefaultPane() {
BorderPane bp = getPane(getDefaultZIndex());
if (bp == null) {
setPane(bp = new BorderPane(), getDefaultZIndex());
}
return bp;
}
@SuppressWarnings("unchecked")
public <T extends Pane> T getPane(int index) {
Pane p = stack.get(index);
if (p != null) return (T) p;
return null;
}
public <T extends Pane> StackBorderPane setPane(T pane, int index) {
stack.put(index, pane);
updateLayout();
return this;
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости