2013-10-11 61 views
1

我试图让我的TextFill在HBox内自动调整大小。要做到这一点使用sceneBuild或FXML代码它很简单只需设置HGrow属性在画面波纹管送花儿给人这样的:如何动态设置HGrow属性?

enter image description here

但对于一些原因,我不得不在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); 

回答

1

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

HBox javadoc class description中有一个样本。

“举个例子,如果一个横向盒需要文本字段来分配所有额外的空间:”

HBox hbox = new HBox(); 
TextField field = new TextField(); 
HBox.setHgrow(field, Priority.ALWAYS); 
hbox.getChildren().addAll(new Label("Search:"), field, new Button("Go"));