在 JavaFX 中將 ArrayList 轉換為 ObservableList

MD Aminul Islam 2023年10月12日
在 JavaFX 中將 ArrayList 轉換為 ObservableList

有時我們會在程式中使用列表。列表是一種陣列。

我們可以使用兩種型別的列表。第一個是 ArrayList,第二個是 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 不支援自動包含庫。然後你可能需要在編譯之前手動包含必要的庫檔案;否則,它將顯示錯誤。

作者: MD Aminul Islam
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

相關文章 - Java JavaFX