JavaFX Scene BuilderのComboBoxのメモ。
|
TextFieldとListViewを持つのがコンボボックス。
ListViewはFXMLのロード時に初期化されるが、デフォルトで値が3つ入っているので、initialize()で初期化すべき。
プロパティーのeditableをtrueにすると、TextFieldにユーザーが直接入力できるようになる。
現在選択されている値を取得するにはgetValue()を使う。
値を設定するにはsetValue()を使う。
(値をセットするとonActionが呼ばれる)
import javafx.scene.control.ComboBox;
public ComboBox<String> combobox; //FXMLによって初期化
String value = combobox.getValue(); combobox.setValue("new value");
プロパティーのeditableをtrueにするとユーザーが自由に入力できるようになるが、
JavaFX2.1では入力後にEnterキーを押さないとValueに反映されないようだ。
Tabキーを押してフォーカス移動しただけでは、見た目は変更されているのに、getValue()で取得できない。
(→Oracle Discussion ForumsのComboBox#getValue() doesn't work????)
コンボボックスのリストはgetItems()でObservableListを取得し、それに対して操作を行う。
ListViewの操作と同様。