繁体   English   中英

Javafx HBox Hgrow(SOMETIMES)子滚动窗格节点如何获取宽度?

[英]Javafx HBox Hgrow(SOMETIMES) child scrollpane node how to get width?

我目前有一个滚动窗格,该滚动窗格包含在HBox节点中,并使用HBox.setHgrow(scrollpane, Priority.SOMETIMES);

另外,我通过使用以下命令手动设置了此滚动窗格的尺寸:

scrollpane.setPrefWidth(w);
scrollpane.setMaxWidth(mxw);
scrollpane.setMinWidth(mnw);

设置好所有这些之后,窗格将在其父节点中按需显示,并且当父HBox中没有其他节点时,滚动窗格将占据整个空间。

当我尝试获取此滚动窗格的宽度时,无法获得计算所得的值,并且所有值似乎都返回0; 我尝试了以下方法以获得实数:

scrollpane.getWidth(); // returns 0
scrollpane.getLayoutBounds.getWidth(); // returns 0
scrollpane.boundsInLocalProperty().get().getWidth; // returns 0
scrollpane.boundsInParentProperty().get().getWidth; // returns 0
scrollpane.widthProperty().get(); // returns 0
scrollpane.layoutBoundsProperty().get().getWidth(); // returns 0

我还使用了ScenicView v8.0.0来检查width的实际值(与prefWidth不同),但是我似乎无法从Scrollpane上的任何可用方法中恢复该值。

我不太确定我在这里缺少什么。

任何解决此问题的帮助将不胜感激。

经过进一步研究,我发现所有宽度值都设置为0的原因仅仅是因为我试图在使用ScrollPane的类的构造函数中执行计算。

更具体地说,在构造函数级别,该scollpane尚未呈现,因此其属性中没有尺寸信息,因此没有宽度值。

渲染完成后执行scrollpane.getWidth()可以正常工作并提供正确的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM