「FXMLでComboBoxの選択肢を列挙型するには」の版間の差分
提供: tknotebook
28行: | 28行: | ||
# 列挙型が変更可能なら、列挙型の個々の要素の toString() メソッドを override する。 | # 列挙型が変更可能なら、列挙型の個々の要素の toString() メソッドを override する。 | ||
− | # ComboBox の | + | # ComboBox の セルファクトリークラスとリストセルクラスを書く。 |
2016年6月19日 (日) 23:16時点における版
メインページ>コンピュータの部屋#JavaFX>JavaFX Tips
ComboBoxの選択肢を 列挙型のすると、ComboBoxのvalueプロパティを直接列挙型の プロパティにバインドできるので便利な場合があります。
BlurTypeを列挙型とすると、FXML で、ComboBoxをこんな具合に宣言すればOKです。
<ComboBox> <value> <BlurType fx:value="THREE_PASS_BOX"/> </value> <items> <FXCollections fx:factory="observableArrayList"> <BlurType fx:value="ONE_PASS_BOX" /> <BlurType fx:value="TWO_PASS_BOX" /> <BlurType fx:value="THREE_PASS_BOX" /> <BlurType fx:value="GAUSSIAN" /> </FXCollections> </items> </ComboBox>
fx:value 属性はノードのクラスの valueOfメソッドで文字列からインスタンスの作成を指示します。
実行時、ComboBoxに表示される各項目の文字列は、列挙名そのままです。
列挙名がComboBoxで表示するのにふさわしくない名前ならば、対策は2つあります。
- 列挙型が変更可能なら、列挙型の個々の要素の toString() メソッドを override する。
- ComboBox の セルファクトリークラスとリストセルクラスを書く。