17

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

我试过这个:

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

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

我还需要做什么才能实现这一目标?

谢谢

4

5 回答 5

30

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()...

于 2011-07-07T20:09:27.250 回答
16

解决了这个

textArea.setPrefSize( Double.MAX_VALUE, Double.MAX_VALUE );
于 2011-05-30T15:54:10.120 回答
5

您可以通过TextAreaBorderPane.

Stage stage = new Stage();
stage.setTitle("Resizing TextArea");

final BorderPane border = new BorderPane();
Scene scene = new Scene(border);

TextArea textArea = new TextArea();
textArea.setStyle("-fx-background-color: #aabbcc;");

border.setCenter(textArea);

primaryStage.setScene(scene);
primaryStage.setVisible(true);

你也可以把它放在一个HBox或一个里面VBox。然后调整大小仅限于水平/垂直方向。不确定这是否是一个问题。

于 2011-08-01T17:45:25.753 回答
-2
<TextArea style="-fx-pref-height: 10px;"/>
于 2016-11-29T15:33:44.737 回答
-4

你可以通过创建一个css文件来做到这一点。

textarea
{
width://your width
} 
于 2011-05-30T18:21:28.007 回答