16

HBoxの JavaFXドキュメントには次のように書かれています。

hbox のサイズが適切な幅よりも大きく変更された場合、デフォルトでは、子は適切な幅に維持され、余分なスペースは未使用のままになります。アプリケーションが 1 つ以上の子に余分なスペースを割り当てたい場合は、必要に応じて子に hgrow 制約を設定できます。詳細は、「オプションのレイアウト制約」を参照してください。

添付の画像で、ボタンが横幅を埋めていないのはなぜですか?

ここに画像の説明を入力

HBox.setHgrow(field, Priority.ALWAYS)ドキュメントが参照しているコードと同じではありませんか。

4

2 に答える 2

23

スクリーンショットで行ったようにボタンを選択し、右側の [レイアウト] ペインの [サイズ] ボックスで [最大幅] を次のように設定します。

MAX_VALUE

これにより、ボタンの最大サイズがボタンの優先サイズにバインドされなくなります。

ノードのサイズ変更と整列に関するOracle のヒントを参照してください。

UI コントロールには、コントロールの一般的な使用法に基づく既定の最小サイズと最大サイズも用意されています。たとえば、Button オブジェクトの最大サイズはデフォルトで適切なサイズに設定されます。これは、通常、ボタンを勝手に大きくしたくないためです。

....

すべてのボタンをペインの幅に合わせてサイズ変更できるようにするにはVBox、各ボタンの最大幅をDouble.MAX_VALUE定数に設定します。これにより、コントロールを無制限に拡張できます。最大値定数を使用する代わりに、最大幅を特定の値 (80.0 など) に設定することもできます。

于 2013-04-26T18:32:03.377 に答える
4

fxml を直接使用する場合はmaxWidth="Infinity"、 で表される MAX_VALUE を使用するときに SceneBuilder が行うのと同じように、または -を使用できますmaxWidth="1.7976931348623157E308"

これは次のようになります (プログレス バーは GridPane 内にあります。

<ProgressBar maxWidth="Infinity" prefWidth="200.0" progress="0.0" GridPane.columnIndex="0" GridPane.hgrow="ALWAYS" GridPane.rowIndex="2" GridPane.valignment="CENTER">
于 2016-08-16T13:13:00.720 に答える