libro
www.tuyano.com
初心者のためのJavaFXプログラミング入門

ListViewとSelectionModel (2/5)

作成:2014-12-20 13:20
更新:2014-12-20 13:20

■Javaコード内からListViewの表示内容を作成する

続いて、FXMLではなく、Javaのソースコード内からListViewの表示内容を作成していく方法についても説明しましょう。

ListViewに表示される項目は、「items」というプロパティとして管理されています。これは表示される全項目をまとめて管理するもので、コレクションフレームワークのインスタンスが設定されています。

このitemsの値は、getItemsで取得したり、setItemsで変更したりすることができます。また、itemsのインスタンス内に保管されている各項目のデータは、そのコレクションクラスのメソッドを使って管理することができます。

実際の利用例を下のリスト欄に掲載しておきましょう。まず、先ほどのFXMLの<ListView>タグを以下のように修正しておきましょう。
<ListView fx:id="list1"></ListView>

これで、FXML側では一切項目は追加されなくなります。実行すると、「One」「Two」「Three」といった項目がリストに表示されるのがわかるでしょう。

ここではInitializableインターフェイスを利用し、initializeメソッドで初期化処理を用意しています。
list1.setItems(FXCollections.observableArrayList());

FXCollections.observableArrayListを使ってコレクションクラスのインスタンスを作成し、それをsetItemsで設定します。後は、itemsのインスタンスにaddで表示するテキストを追加していくだけです。
list1.getItems().add("One");
list1.getItems().add("Two");
list1.getItems().add("Three");

やり方さえわかれば、リストの作成はそれほど難しいものでないことがわかるでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

package com.tuyano.libro;

import java.net.URL;
import java.util.ResourceBundle;

import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;


public class AppController implements Initializable {
    @FXML Label label1;
    @FXML ListView<String> list1;
    @FXML Button btn1;
    
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        list1.setItems(FXCollections.observableArrayList());
        list1.getItems().add("One");
        list1.getItems().add("Two");
        list1.getItems().add("Three");
    }

}
※関連コンテンツ

「初心者のためのJavaFXプログラミング入門」に戻る