2016-08-05 34 views
0

我使用VBox來提供3個輸入字段。
他們都建立了這樣的:VBox中的節點不具有相同的寬度

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)。

VBox for the input fields
Explination:與邊框的組件擴展StackPane,只能容納一個node。在這種情況下,「節點」是一個VBox,它包含3個輸入字段和按鈕。

回答

1

對個人控制使用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); 
+0

作品,因爲它的目的是,謝謝 –

相關問題