2016年7月20日水曜日

JavaFX の ListView で String 以外を構成要素にする

ListView では javadoc にもあるように、ListView<String> という形で String 型のものを要素として第一に想定していますが、
もちろん、それ以外の独自のクラスを指定することも可能です。
その際に一番簡単な方法は次の通り。

例として独自の Item クラスというのを ListView で扱いたい場合、

・ObservableList<Item> を ListView<Item> に setItems() で設定する

・リストに表示される文字列は Item クラスの toString に実装

実装イメージを書くとこんな感じになります。
// ListView 側
    @FXML
    private ListView<Item> itemListView;

(略)
        ObservableList<Item> items = FXCollections.observableArrayList();

        // items に項目を追加する処理
        itemListView.setItems(items);

// Item 側
public class Item{
    private String itemName;

    @Override
    public String toString() {
        return itemName;
    }

0 件のコメント:

コメントを投稿