javaFX 2.0 将组件设置为直接父级的全宽和全高

2022-09-02 19:34:46

如何获取父窗格的完整宽度和高度。TextArea

我试过这个:

TextArea textArea = new TextArea();
textArea.setScaleX( 100 );
textArea.setScaleY( 100 );

但是覆盖了顶部 via 中定义的元素。
减少没有效果。parent.setTop(...)scaleY

我还需要做些什么才能实现此目的?

谢谢


答案 1

MAX_VALUE解决方案有点笨拙,可能会导致性能问题。此外,这个问题的答案可能取决于你的父容器是什么。无论如何,更好的方法是这样的:

textArea.prefWidthProperty().bind(<parentControl>.prefWidthProperty());
textArea.prefHeightProperty().bind(<parentConrol>.prefHeightProperty());

您可能还希望将首选属性绑定到实际属性,尤其是在父级使用其计算维度而不是显式维度时:

textArea.prefWidthProperty().bind(<parentControl>.widthProperty());
textArea.prefHeightProperty().bind(<parentConrol>.heightProperty());

也可以通过在不使用绑定的情况下执行此操作,方法是重写父容器的 layoutChildren() 方法并调用

textArea.resize(getWidth(), getHeight());

别忘了调用 super.layoutChildren()...


答案 2

用这个解决了

textArea.setPrefSize( Double.MAX_VALUE, Double.MAX_VALUE );

推荐