Konvertieren von ArrayList in ObservableList in JavaFX

MD Aminul Islam 12 Oktober 2023
Konvertieren von ArrayList in ObservableList in JavaFX

Manchmal arbeiten wir mit einer Liste in unserem Programm. Eine Liste ist eine Art Array.

Es gibt zwei Arten von Listen, mit denen wir arbeiten können. Die erste ist die ArrayList und die zweite die ObservableList.

Die ArrayList ist eine Klasse von in der Größe veränderbaren Arrays, bei denen ObservableList es einem Programm ermöglicht, auftretende Änderungen abzuhören und zu verfolgen. Manchmal müssen wir eine ArrayList für verschiedene Zwecke in eine ObservableList konvertieren.

Dieser Artikel erklärt, wie wir ArrayList in ObservableList umwandeln können. Außerdem sehen wir ein Beispiel mit Ausgabe, um das Verständnis zu erleichtern.

Konvertieren von ArrayList in ObservableList in JavaFX

In unserem Beispiel konvertieren wir also eine ArrayList in eine Observable-Liste. Wir beginnen damit, die notwendigen Paketdateien für die Komponenten einzufügen, die wir in unserem Programm verwenden werden.

Unser Beispielcode sieht wie folgt aus:

// 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());
  }
}

Der Zweck jeder Zeile wird befohlen. Nun werden wir über die Schritte sprechen, denen wir folgen, um die ArrayList list in die ObservableList ObList zu konvertieren.

Der Datentyp dieser beiden Listen ist eine ganze Zahl. Zuerst haben wir einen Integer-Typ ArrayList mit dem Namen list erstellt.

Danach haben wir eine ObservableList namens ObList mit der Array-Liste list erstellt. Wir haben den folgenden Ereignis-Listener erstellt, der Änderungen erkennt, die an der ObList vorgenommen wurden.

Als Aktion zeigten wir eine Meldung Changes found... auf der Konsole an, um den Benutzer darüber zu informieren, dass eine Änderung in ObList gefunden wurde.

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

Dies ist ein Listenwechsel-Listener mit ListChangeListener.Change. Sie können je nach Bedarf Ihre bevorzugte Aktion hinzufügen.

Zuletzt haben wir dem Array einige Daten zur Verfügung gestellt, um zu überprüfen, ob unser System funktioniert. Nach einer erfolgreichen Kompilierung und Ausführung erhalten Sie eine Ausgabe wie die folgende.

Ausgabe:

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

Denken Sie daran, falls Ihre IDE das automatische Einbinden von Bibliotheken nicht unterstützt. Dann müssen Sie möglicherweise die erforderlichen Bibliotheksdateien vor dem Kompilieren manuell einfügen. Andernfalls wird ein Fehler angezeigt.

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

Verwandter Artikel - Java JavaFX