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);

设置完成后,pane在其父节点中按需显示,当父HBox内没有其他节点时,scrollpane占据整个space。

当我尝试获取此滚动窗格的宽度时,我无法获取计算值,并且所有值似乎 return 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 检查宽度的实际值(不同于 prefWidth),但我似乎无法从 Scrollpane 上的可用方法中的任何地方恢复此值。

我不太确定我在这里遗漏了什么。

如果能帮助解决这个问题,我们将不胜感激。

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

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

在渲染发生后执行 scrollpane.getWidth() 工作并提供正确的信息。