##環境
- JDK 1.8.0_121
- JavaFX Scene Builder 8.3.0
##概要
設定項目が多い画面のリキッドレイアウトを組んでみます。難しいものではありませんがちょっとした設定画面を作るのにレイアウトパターンを知っておくと便利です。
GridPane
を使ってもよいのですが設定項目が多くなると水平方向の融通が利かなくなっていきます。今回はGridPane
を使わない方法です。
外枠
Cancel,OKボタンが常に表示されるようにBorderPane
をルートにします。
-
ScrollPane
の Layout>Fit To Width にチェックを入れます。子要素のVBox
の幅がScrollPane
の幅一杯まで広がるようになります。 - この
VBox
の中に各設定項目を並べます。 -
HBox
の Properties>Alignment をBASELINE_RIGHT
にすることでOK,Cancelボタンが右寄せになります。
設定項目
- 設定項目ごとに
HBox
を使用します。HBox
の Layout>Alignment にBASELINE_LEFT
を指定することでラベルと入力欄の縦方向の文字位置を揃える事ができます。 - 入力欄を右寄せにしたい項目はラベルと入力欄の間に
Region
を挟みます。Region
の Layout>Hgrow をALWAYS
にすることでRegion
の幅を目一杯広げて入力欄のみ右寄せにすることができます。 -
TextField
やTextArea
など入力欄自体を広げたい場合はそのコンポーネントのLayout>Hgrow をALWAYS
にします。
ListView
などコンポーネントによってはベースラインの位置が異なるものがあるので、HBox
のAlignmentを上揃いにしたほうがよい場合があります。
HBox
,VBox
のSpacingは非常に便利です。Paddingと合わせて設定することでコンポーネント間の距離を均等に保てます。
省略表記を防ぐ
ラベルやボタンの省略表記(...)を防ぎたい場合は次の方法があります。
- Min Width に
USE_PREF_SIZE
を設定する方法 - Text Overrun に
CLIP
を設定する方法
USE_PREF_SIZE
はMax Widthにも設定することができいろいろ応用が利きます。