获取JavaFX中节点的高度(生成布局传递)如何获得JavaFX中节点的高度或偏好高度,我有3VBox我想将节点添加到最自由的面板中,例如: Childrens Total Height of the children's(Sum)VBoxA 5 890VBoxB 4 610VBoxC 2 720在这种情况下,最自由的是VBoxB,使用此方法计算最自由的窗格:private int getFreerColumnIndex() {
if(columns.isEmpty())
return -1;
int columnIndex = 0;
int minHeight = 0;
for(int i = 0; i < columns.size(); i++) {
int height = 0;
for(Node n : columns.get(i).getChildren()) {
height += n.getBoundsInLocal().getHeight();
}
if(i == 0) {
minHeight = height;
} else if(height < minHeight) {
minHeight = height;
columnIndex = i;
}
if(height == 0)
break;
}
return columnIndex;}只有当我当时添加了一个元素时,此方法才能工作。但是如果我当时添加更多的元素:for (int i = 0; i < 10; i++) {
SomeNode r1 = new SomeNode ();
myPane.addElement(r1);}方法getFreerColumnIndex返回相同的索引。这是因为新的节点还没有在本地拥有优势。所以这一行:height += n.getBoundsInLocal().getHeight();会回来0新节点。有谁知道如何获得节点的最大能量吗?额外:SomeNode延展NodemyPane的addElement()方法:public void addElement(final Node element) {
index = getFreerColumnIndex();
columns.get(index).getChildren().add(element);}额外2:假设我们有3个VBOX:在此之前: A B C | | |
| |
|跑:for (int i = 0; i < 10; i++) {
SomeNode r1 = new SomeNode ();
myPane.addElement(r1); }之后: A B C | | |
| | |
| |
|
|
|
|
|
|
|
|对,是这样: A B C | | |
| | |
| | |
| | |
| | |
||=某个节点
添加回答
举报
0/150
提交
取消
