我使用 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);
TextField
和DatePicker
的宽度相等。然而 Spinner
稍微短一些。
我怎样才能得到相同的大小?
注意:使用 .setMinWidth(Control.USE_PREF_SIZE);
导致 VBox< 的父节点(确实扩展了
。 StackPane
)出现布局问题
说明:带边框的组件扩展StackPane
,只能容纳一个节点
。本例中的“节点”是一个 VBox
,它包含 3 个输入字段和按钮。
最佳答案
在各个控件上使用setMaxWidth
并调用setFillWidth(true)
在 VBox
本身上:
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);
关于java - VBox 中的节点不具有相同的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38791202/