VBox中的节点宽度不同

时间:2016-08-05 14:04:25

标签: java css javafx width input-field

我使用VBox提供3个输入字段 它们都是这样设置的:

tf = new TextField();
tf.setPrefWidth(Double.MAX_VALUE);
sp = new Spinner<Integer>(0, 3, 1);
sp.setPrefWidth(Double.MAX_VALUE);
dp = new DatePicker(LocalDate.now());
dp.setPrefWidth(Double.MAX_VALUE);
vbox.getChildren().addAll(tf, sp, dp);

TextFieldDatePicker的宽度相等。但Spinner略短 我如何才能获得相同的尺寸?

注意:使用.setMinWidth(Control.USE_PREF_SIZE);导致布局问题StackPane的父节点(扩展VBox)。

VBox for the input fields
Explination:带边框的Component扩展StackPane,只能容纳一个node。在这种情况下,“节点”是VBox,它包含3个输入字段和按钮。

1 个答案:

答案 0 :(得分:2)

对各个控件使用setMaxWidth,并在VBox本身上致电setFillWidth(true)

tf = new TextField();
tf.setMaxWidth(Double.MAX_VALUE);
sp = new Spinner<Integer>(0, 3, 1);
sp.setMaxWidth(Double.MAX_VALUE);
dp = new DatePicker(LocalDate.now());
dp.setMaxWidth(Double.MAX_VALUE);

vBox.setFillWidth(true);

vbox.getChildren().addAll(tf, sp, dp);