如何TextArea
获取父窗格的完整宽度和高度。
我试过这个:
TextArea textArea = new TextArea();
textArea.setScaleX( 100 );
textArea.setScaleY( 100 );
但是顶部通孔中定义的元素parent.setTop(...)
被覆盖了。
减少scaleY
没有效果。
我还需要做什么才能实现这一目标?
谢谢
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()...
解决了这个
textArea.setPrefSize( Double.MAX_VALUE, Double.MAX_VALUE );
您可以通过TextArea
将BorderPane
.
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
。然后调整大小仅限于水平/垂直方向。不确定这是否是一个问题。
<TextArea style="-fx-pref-height: 10px;"/>
你可以通过创建一个css文件来做到这一点。
textarea
{
width://your width
}