在 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