Я пытаюсь создать макет с помощью JavaFX, который позволяет накладывать узлы, изменять их размер, чтобы соответствовать (заполнять) размер контейнера, и выравнивать их по сторонам контейнера. Какую панель макета мне следует использовать и как ее настроить для достижения макета, показанного на рисунке.
Я попытался поместить TreeView
узел и SwingNode
в AnchorPane
и установить якоря для заполнения контейнера, вот так
TreeView: верхний 0, левый 0, нижний 0 (нет правого якоря, чтобы изменить размер, чтобы соответствовать контенту)
SwingNode: все до 0
TreeView отображался правильно, но нижний элемент SwingNode не подходил для всего контейнера. Это выглядело так, как будто его правая привязка была применена к правой стороне TreeView, а не к правой стороне контейнера. Таким образом, он был такого же размера, как TreeView. Я смог увидеть его после установки полей в TreeView.
Мой код выглядел так при использовании TornadoFX DSL:
anchorpane {
swingnode {
AnchorPane.setTopAnchor(this, 5.0)
AnchorPane.setLeftAnchor(this, 5.0)
AnchorPane.setBottomAnchor(this, 5.0)
AnchorPane.setRightAnchor(this, 5.0)
}
treeview {
AnchorPane.setTopAnchor(this, 5.0)
AnchorPane.setLeftAnchor(this, 5.0)
AnchorPane.setBottomAnchor(this, 5.0)
}
}
Я хочу, чтобы макет был похож на картинку:
.
Так что часть SwingNode скрыта под TreeView, а TreeView имеет фиксированную ширину (или, если возможно, соответствует его содержимому).