1

我试图让我的 TextFill 在 HBox 内自动调整大小。要做到这一点,使用 sceneBuild 或 fxml 代码非常简单,只需将 HGrow 属性设置为始终如下图所示:

在此处输入图像描述

但是由于某些原因,我必须通过 java 代码动态生成我的组件,这样我就找不到如何将此属性设置为我的 textField。

HBox hBox = new HBox();
TextField autoCompleteNome = new AutoCompleteTextField();
TextField autoCompleteCargo = new AutoCompleteTextField();
Button btnRemove = new Button("Excluir");

hBox.setAlignment(Pos.CENTER);
hBox.setFillHeight(true);
hBox.setMinHeight(39);
hBox.setSpacing(5);

autoCompleteName.setAlignment(Pos.CENTER_LEFT);
autoCompleteName.autosize();
autoCompleteName.setMinHeight(30);
autoCompleteName.setPrefHeight(30);
autoCompleteName.setItems(data);
autoCompleteName.setPromptText("Nome");

hBox.getChildren().add(autoCompleteName);
4

1 回答 1

2

使用静态HBox.setHgrow(node, priority)函数设置 HBox 子节点的增长优先级。

HBox javadoc 类描述中有一个示例。

“例如,如果一个 hbox 需要为 TextField 分配所有额外的空间:”

 HBox hbox = new HBox();
 TextField field = new TextField();
 HBox.setHgrow(field, Priority.ALWAYS);
 hbox.getChildren().addAll(new Label("Search:"), field, new Button("Go"));
于 2013-10-11T19:36:07.740 回答