HOWTO · Java

JavaFX で ArrayList を ObservableList に変換する

このチュートリアルでは、JavaFX で ArrayList を ObservableList に変換する方法について説明します。

このページの内容

プログラムのリストを使用することもあります。リストは一種の配列です。

使用できるリストには 2つのタイプがあります。1つ目は ArrayList で、2つ目は ObservableList です。

ArrayList は、サイズ変更可能な配列のクラスであり、ObservableList を使用すると、プログラムは発生する変更をリッスンして追跡できます。さまざまな目的で、ArrayList を ObservableList に変換する必要がある場合があります。

この記事では、ArrayList を ObservableList に変換する方法について説明します。また、わかりやすくするために出力の例を示します。

JavaFX で ArrayList を ObservableList に変換する

したがって、この例では、ArrayList を Observable リストに変換します。プログラムで使用するコンポーネントに必要なパッケージファイルを含めることから始めます。

サンプルコードは次のようになります。

// Importing necessary packages
import java.util.ArrayList; // Package for the ArrayList
import java.util.List; // Package for the list
import javafx.collections.FXCollections; // Package for FxCollections
import javafx.collections.ListChangeListener; // Package for the listener for lists
import javafx.collections.ObservableList; // Package for the ObservableList

public class observableList {
  // Our main method
  public static void main(String[] args) {
    List list = new ArrayList(); // create an array list of integer type
    ObservableList ObList =
        FXCollections.observableList(list); // create an observable list from array

    ObList.addListener(new ListChangeListener() { // add an event listerer for the observable list
      @Override
      public void onChanged(
          ListChangeListener.Change c) { // Method that will execute when any changes occured
        System.out.println("Changes found ...  "); // Show a message that a change occured
      }
    });
    // add items to the observable List and check for size.
    ObList.add(22);
    System.out.println("The ObservableList size is:  " + ObList.size());
    list.add(44);
    System.out.println("The ObservableList size is:  " + ObList.size());
    ObList.add(66);
    System.out.println("The ObservableList size is:  " + ObList.size());
  }
}

各行の目的は命令されています。次に、ArrayList list を ObservableList ObList に変換するための手順について説明します。

これらのリストの両方のデータタイプは整数です。まず、list という名前の整数型 ArrayList を作成しました。

その後、配列リスト list を使用して ObservableList 名 ObList を作成しました。ObList で行われた変更を検出する以下のイベントリスナーを作成しました。

アクションとして、コンソールに Changes found... というメッセージを表示して、ObList に変更が見つかったことをユーザーに通知しました。

public void onChanged(ListChangeListener.Change c) {
  System.out.println("Changes found . .  ");
}

これは、ListChangeListener.Change を使用したリスト変更リスナーです。必要に応じて、好みのアクションを追加できます。

最後に、システムが機能するかどうかを確認するために、アレイにいくつかのデータを提供しました。コンパイルと実行が正常に完了すると、次のような出力が得られます。

出力:

Changes found...
The ObservableList size is: 1
The ObservableList size is: 2
Changes found...
The ObservableList size is: 3

IDE がライブラリの自動インクルードをサポートしていない場合は覚えておいてください。次に、コンパイルする前に、必要なライブラリファイルを手動で含める必要がある場合があります。それ以外の場合は、エラーが表示されます。