Convertir ArrayList a ObservableList en JavaFX

MD Aminul Islam 12 octubre 2023
Convertir ArrayList a ObservableList en JavaFX

A veces trabajamos con una lista en nuestro programa. Una lista es un tipo de matriz.

Hay dos tipos de listas con las que podemos trabajar. El primero es ArrayList y el segundo es ObservableList.

ArrayList es una clase de matrices redimensionables donde ObservableList permite que un programa escuche y rastree los cambios que ocurren. A veces necesitamos convertir un ArrayList en ObservableList para varios propósitos.

Este artículo explicará cómo podemos convertir ArrayList a ObservableList. Además, veremos un ejemplo con salida para que sea más fácil de entender.

Convertir ArrayList a ObservableList en JavaFX

Entonces, en nuestro ejemplo, convertiremos una ArrayList en una lista Observable. Comenzaremos por incluir los archivos de paquete necesarios para los componentes que usaremos en nuestro programa.

Nuestro código de ejemplo se verá así:

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

Se ordena el propósito de cada línea. Ahora, hablaremos de los pasos que seguimos para convertir el ArrayList list en el ObservableList ObList.

El tipo de datos de ambas listas es un número entero. Primero, creamos un tipo entero ArrayList llamado list.

Después de eso, hemos creado una ObservableList con el nombre ObList con la lista de matriz list. Creamos el detector de eventos a continuación que detecta los cambios realizados en ObList.

Como acción, mostramos un mensaje Cambios encontrados... en la consola para informar al usuario que se encontró un cambio en ObList.

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

Este es un oyente de cambio de lista con ListChangeListener.Change. Puede agregarle su acción preferida según sus necesidades.

Por último, proporcionamos algunos datos al array para verificar si nuestro sistema funciona. Después de una compilación y ejecución exitosas, obtendrá un resultado como el siguiente.

Producción :

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

Recuerde, si su IDE no admite la inclusión automática de bibliotecas. Luego, es posible que deba incluir los archivos de biblioteca necesarios manualmente antes de compilar; de lo contrario, mostrará un error.

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

Artículo relacionado - Java JavaFX