ListModel (Java SE 25 & JDK 25)
Description: declaration: module: java.desktop, package: javax.swing, interface: ListModel
Keywords: javax.swing.ListModel interface

# Interface ListModel<E>

Type Parameters:
  `E` - the type of the elements of this model

All Known Subinterfaces:
  `ComboBoxModel<E>, MutableComboBoxModel<E>`

All Known Implementing Classes:
  `AbstractListModel, BasicDirectoryModel, DefaultComboBoxModel, DefaultListModel, MetalFileChooserUI.DirectoryComboBoxModel, MetalFileChooserUI.FilterComboBoxModel`

public interface ListModel<E>
This interface defines the methods components like JList use to get the value of each cell in a list and the length of the list. Logically the model is a vector, indices vary from 0 to ListModel.getSize() - 1. Any change to the contents or length of the data model must be reported to all of the ListDataListeners.

Since:
  1.2
See Also:
  - `JList`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addListDataListener(ListDataListener l)`
  Adds a listener to the list that's notified each time a change to the data model occurs.
  `E`
  `getElementAt(int index)`
  Returns the value at the specified index.
  `int`
  `getSize()`
  Returns the length of the list.
  `void`
  `removeListDataListener(ListDataListener l)`
  Removes a listener from the list that's notified each time a change to the data model occurs.

- ## Method Details

  - ### getSize

    int getSize()
    Returns the length of the list.
    Returns:
      the length of the list

  - ### getElementAt

    E getElementAt(int index)
    Returns the value at the specified index.
    Parameters:
      `index` - the requested index
    Returns:
      the value at `index`

  - ### addListDataListener

    void addListDataListener(ListDataListener l)
    Adds a listener to the list that's notified each time a change to the data model occurs.
    Parameters:
      `l` - the `ListDataListener` to be added

  - ### removeListDataListener

    void removeListDataListener(ListDataListener l)
    Removes a listener from the list that's notified each time a change to the data model occurs.
    Parameters:
      `l` - the `ListDataListener` to be removed