The JList component is the basic Swing component for selecting one or more items from a set of choices. Three key elements and their implementations define the JList structure:
A data model for holding the JList data, as defined by the ListModel interface
A cell renderer for drawing the elements of the JList, as described by the ListCellRenderer interface
A selection model for selecting elements of the JList, as described by the ListSelectionModel interface