2016-08-05 10 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); 

TextFieldDatePickerの幅は同じです。しかし、Spinnerは少し短くなっています。
どうすれば同じサイズにすることができますか?

注:.setMinWidth(Control.USE_PREF_SIZE);を使用すると、VBoxの親ノード(StackPaneを拡張します)のレイアウトに問題が発生しました。

VBox for the input fields
Explination:境界線とコンポーネントがStackPaneを拡張し、一つだけnodeを保持することができます。この場合の「ノード」はVBoxで、3つの入力フィールドとボタンを保持します。個々のコントロールに

答えて

1

使用setMaxWidthVBox自体に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

作品、ありがとうございました –

関連する問題