为了账号安全,请及时绑定邮箱和手机立即绑定

获取JavaFX中节点的高度(生成布局传递)

获取JavaFX中节点的高度(生成布局传递)

UYOU 2019-07-03 10:24:31
获取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 |      |      |  |      |      |  |      |      |  |      |      |  |      |      |  ||=某个节点
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 471 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号