java - VBox 中的节点不具有相同的宽度

标签 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); 导致 VBox< 的父节点(确实扩展了 StackPane)出现布局问题

VBox for the input fields
说明:带边框的组件扩展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/

相关文章:

html - CSS 进度跟踪器未填满

javafx - 如何监听特定节点的 JavaFX SceneGraph 的可见更改

hibernate - JavaFX BooleanProperty 和 Hibernate

java - 如何从其他类获取对节点的引用?

html - 如何将 float 在一个 <div> 中的元素居中?

java - 在 JFrame 中创建快捷方式

java.io.StreamTokenizer.TT_NUMBER : Floating or Integer?

java - 如何在 ubuntu 虚拟机上用 java 将字节解码为 UTF-8?

javascript - 获取 fadeIn 元素以引发问题

java - 将位图转换为 javax.microedition.lcdui.Image