javax.swing
public class JList extends JComponent implements Accessible, Scrollable
This class is a facade over three separate objects: {@link javax.swing.ListModel}, {@link javax.swing.ListSelectionModel} and {@link javax.swing.plaf.ListUI}. The facade represents a unified "list" concept, with independently replacable (possibly client-provided) models for its contents and its current selection. In addition, each element in the list is rendered via a strategy class {@link javax.swing.ListCellRenderer}.
Lists have many properties, some of which are stored in this class while others are delegated to the list's model or selection. The following properties are available:
Property | Stored in | Bound? |
---|---|---|
accessibleContext | list | no |
anchorSelectionIndex | selection | no |
cellRenderer | list | yes |
dragEnabled | list | no |
firstVisibleIndex | list | no |
fixedCellHeight | list | yes |
fixedCellWidth | list | yes |
lastVisibleIndex | list | no |
layoutOrientation | list | yes |
leadSelectionIndex | selection | no |
maxSelectionIndex | selection | no |
minSelectionIndex | selection | no |
model | list | yes |
opaque | list | no |
preferredScrollableViewportSize | list | no |
prototypeCellValue | list | yes |
scrollableTracksViewportHeight | list | no |
scrollableTracksViewportWidth | list | no |
selectedIndex | selection | no |
selectedIndices | selection | no |
selectedValue | model | no |
selectedValues | model | no |
selectionBackground | list | yes |
selectionEmpty | selection | no |
selectionForeground | list | yes |
selectionMode | selection | no |
selectionModel | list | yes |
UI | list | yes |
UIClassID | list | no |
valueIsAdjusting | list | no |
visibleRowCount | list | no |
Nested Class Summary | |
---|---|
protected class | JList.AccessibleJList
Provides accessibility support for JList . |
Field Summary | |
---|---|
static int | HORIZONTAL_WRAP
Constant value used in "layoutOrientation" property. |
static int | VERTICAL
Constant value used in "layoutOrientation" property. |
static int | VERTICAL_WRAP
Constant value used in "layoutOrientation" property. |
Constructor Summary | |
---|---|
JList()
Creates a new JList object. | |
JList(Object[] items)
Creates a new JList object.
| |
JList(Vector<?> items)
Creates a new JList object.
| |
JList(ListModel model)
Creates a new JList object.
|
Method Summary | |
---|---|
void | addListSelectionListener(ListSelectionListener listener)
Adds a {@link ListSelectionListener} to the listener list for this
list. |
void | addSelectionInterval(int anchor, int lead)
Adds the specified interval to the current selection. |
void | clearSelection()
Clears the current selection. |
protected ListSelectionModel | createSelectionModel()
Creates the default ListSelectionModel .
|
void | ensureIndexIsVisible(int i)
Scrolls this list to make the specified cell visible. |
protected void | fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
Fire a {@link ListSelectionEvent} to all the registered
ListSelectionListeners.
|
AccessibleContext | getAccessibleContext() |
int | getAnchorSelectionIndex()
Returns the index of the anchor item in the current selection, or
-1 if there is no anchor item.
|
Rectangle | getCellBounds(int index0, int index1)
Returns the bounds of the rectangle that encloses both list cells
with index0 and index1.
|
ListCellRenderer | getCellRenderer()
Gets the value of the {@link #cellRenderer} property.
|
boolean | getDragEnabled()
Return the value of the dragEnabled property.
|
int | getFirstVisibleIndex()
Returns the list index of the upper left or upper right corner of the
visible rectangle of this list, depending on the {@link
Component#getComponentOrientation} property.
|
int | getFixedCellHeight()
Gets the value of the {@link #fixedCellHeight} property. |
int | getFixedCellWidth()
Gets the value of the {@link #fixedCellWidth} property. |
int | getLastVisibleIndex()
Returns the list index of the lower right or lower left corner of the
visible rectangle of this list, depending on the {@link
Component#getComponentOrientation} property.
|
int | getLayoutOrientation()
Returns the layout orientation, which will be one of {@link #VERTICAL},
{@link #VERTICAL_WRAP} and {@link #HORIZONTAL_WRAP}. |
int | getLeadSelectionIndex()
Returns the index of the lead item in the current selection, or
-1 if there is no lead item.
|
ListSelectionListener[] | getListSelectionListeners()
Returns an array of all ListSelectionListeners subscribed to this
list.
|
int | getMaxSelectionIndex()
Returns the highest item index in the current selection, or
-1 if there is no selection.
|
int | getMinSelectionIndex()
Returns the lowest item index in the current selection, or -1
if there is no selection.
|
ListModel | getModel()
Gets the value of the {@link #model} property.
|
int | getNextMatch(String prefix, int startIndex, Position.Bias direction)
Returns the index of the next list element (beginning at
startIndex and moving in the specified direction through the
list, looping around if necessary) that starts with prefix
(ignoring case).
|
Dimension | getPreferredScrollableViewportSize()
Returns a size indicating how much space this list would like to
consume, when contained in a scrollable viewport. |
Object | getPrototypeCellValue()
Returns the current value of the {@link #prototypeCellValue}
property. |
int | getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) Return the number of pixels the list must scroll in order to move a "block" of the list into the provided visible rectangle. |
boolean | getScrollableTracksViewportHeight()
Gets the value of the scrollableTracksViewportWidth property.
|
boolean | getScrollableTracksViewportWidth()
Gets the value of the scrollableTracksViewportWidth property.
|
int | getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) Return the number of pixels the list must scroll in order to move a "unit" of the list into the provided visible rectangle. |
int | getSelectedIndex()
Returns the minimum index of an element in the list which is currently
selected.
|
int[] | getSelectedIndices()
Returns the indices of values in the {@link #model} property which are
selected.
|
Object | getSelectedValue()
Returns the first value in the list's {@link #model} property which is
selected, according to the list's {@link #selectionModel} property.
|
Object[] | getSelectedValues()
Returns all the values in the list's {@link #model} property which are
selected, according to the list's {@link #selectionModel} property.
|
Color | getSelectionBackground()
Gets the value of the {@link #selectionBackground} property.
|
Color | getSelectionForeground()
Gets the value of the {@link #selectionForeground} property.
|
int | getSelectionMode()
Returns the selection mode for the list (one of:
{@link ListSelectionModel#SINGLE_SELECTION},
{@link ListSelectionModel#SINGLE_INTERVAL_SELECTION} and
{@link ListSelectionModel#MULTIPLE_INTERVAL_SELECTION}).
|
ListSelectionModel | getSelectionModel()
Returns the selection model for the {@link JList} component. |
ListUI | getUI()
Gets the value of the UI property.
|
String | getUIClassID()
Return the class identifier for the list's UI property. |
boolean | getValueIsAdjusting()
Returns the valueIsAdjusting flag from the list's selection
model.
|
int | getVisibleRowCount()
Gets the value of the {@link #visibleRowCount} property. |
Point | indexToLocation(int index)
Returns location of the cell located at the specified index in the list. |
boolean | isSelectedIndex(int a)
Indicates whether the list element at a given index value is
currently selected.
|
boolean | isSelectionEmpty()
Returns true if the model's selection is empty, otherwise
false .
|
int | locationToIndex(Point location)
Returns index of the cell to which specified location is closest to. |
protected String | paramString()
Returns a string describing the attributes for the JList
component, for use in debugging. |
void | removeListSelectionListener(ListSelectionListener listener)
Removes a {@link ListSelectionListener} from the listener list for
this list. |
void | removeSelectionInterval(int index0, int index1)
Removes the specified interval from the current selection. |
void | setCellRenderer(ListCellRenderer renderer)
Sets the value of the {@link #getCellRenderer} property.
|
void | setDragEnabled(boolean enabled)
Set the dragEnabled property.
|
void | setFixedCellHeight(int h)
Sets the value of the {@link #fixedCellHeight} property. |
void | setFixedCellWidth(int w)
Sets the value of the {@link #fixedCellWidth} property. |
void | setLayoutOrientation(int orientation)
Sets the layout orientation (this is a bound property with the name
'layoutOrientation'). |
void | setListData(Object[] listData)
Sets the {@link #model} property of the list to a new anonymous
{@link AbstractListModel} subclass which accesses the provided Object
array directly.
|
void | setListData(Vector<?> listData)
Sets the {@link #model} property of the list to a new anonymous {@link
AbstractListModel} subclass which accesses the provided vector
directly.
|
void | setModel(ListModel model)
Sets the value of the {@link #model} property. |
void | setPrototypeCellValue(Object obj) Set the {@link #prototypeCellValue} property. |
void | setSelectedIndex(int a)
Adds the interval [a,a] to the set of selections managed
by this list's {@link #selectionModel} property. |
void | setSelectedIndices(int[] a)
For each element a[i] of the provided array
a , calls {@link #setSelectedIndex} on a[i] .
|
void | setSelectedValue(Object obj, boolean scroll)
Sets the selection to cover only the specified value, if it
exists in the model.
|
void | setSelectionBackground(Color c)
Sets the value of the {@link #selectionBackground} property.
|
void | setSelectionForeground(Color c)
Sets the value of the {@link #selectionForeground} property.
|
void | setSelectionInterval(int anchor, int lead)
Sets the current selection to the items in the specified range (inclusive).
|
void | setSelectionMode(int a)
Sets the list's "selectionMode" property, which simply mirrors the
same property on the list's {@link #selectionModel} property. |
void | setSelectionModel(ListSelectionModel model)
Sets the value of the {@link #selectionModel} property. |
void | setUI(ListUI ui)
Sets the value of the UI property.
|
void | setValueIsAdjusting(boolean isAdjusting)
Sets the valueIsAdjusting flag in the list's selection
model.
|
void | setVisibleRowCount(int vc)
Sets the value of the {@link #visibleRowCount} property.
|
void | updateUI()
Calls {@link #setUI} with the {@link ListUI} subclass
returned from calling {@link UIManager#getUI}. |
JList
object.JList
object.
Parameters: items the initial list items.
JList
object.
Parameters: items the initial list items.
JList
object.
Parameters: model a model containing the list items (null
not
permitted).
Throws: IllegalArgumentException if model
is
null
.
Parameters: listener The new listener to add
anchor
can be less than, equal to, or greater than
lead
.
Parameters: anchor the index of the anchor item. lead the index of the lead item.
ListSelectionModel
.
Returns: the ListSelectionModel
Parameters: i The list index to make visible
See Also: JComponent
Parameters: firstIndex the lowest index covering the selection change. lastIndex the highest index covering the selection change. isAdjusting a flag indicating if this event is one in a series of events updating the selection.
-1
if there is no anchor item.
Returns: The item index.
Parameters: index0 the index of the first cell index1 the index of the second cell
Returns: the bounds of the rectangle that encloses both list cells
with index0 and index1, null
if one of the indices is
not valid
Returns: The current value of the property
dragEnabled
property.
Returns: the value
Since: 1.4
Returns: The index of the first visible list cell, or -1
if none is visible.
-1
to indicate that no cell height has been
set. This property is also set implicitly when the
{@link #prototypeCellValue} property is set.
Returns: The current value of the property
See Also: fixedCellHeight JList JList
-1
to indicate that no cell width has been
set. This property is also set implicitly when the {@link
#prototypeCellValue} property is set.
Returns: The current value of the property
Returns: The index of the last visible list cell, or -1
if none is visible.
Returns: the orientation.
Since: 1.4
See Also: JList
-1
if there is no lead item.
Returns: The item index.
Returns: The current subscribed listeners
Since: 1.4
-1
if there is no selection.
Returns: The index.
See Also: getMinSelectionIndex
-1
if there is no selection.
Returns: The index.
See Also: getMaxSelectionIndex
Returns: The current value of the property
startIndex
and moving in the specified direction through the
list, looping around if necessary) that starts with prefix
(ignoring case).
Parameters: prefix the prefix to search for in the cell values startIndex the index where to start searching from direction the search direction, either {@link Position.Bias#Forward}
or {@link Position.Bias#Backward} (null
is interpreted
as {@link Position.Bias#Backward}.
Returns: the index of the found element or -1 if no such element has been found
Throws: IllegalArgumentException if prefix is null
or
startIndex is not valid
Since: 1.4
Returns: The preferred size
Returns: The current prototype cell value
See Also: JList
Return the number of pixels the list must scroll in order to move a "block" of the list into the provided visible rectangle. When the provided direction is positive, the call describes a "downwards" scroll, which will be exposing a cell at a greater index in the list than those elements currently showing. Then the provided direction is negative, the call describes an "upwards" scroll, which will be exposing a cell at a lesser index in the list than those elements currently showing.
If the provided orientation is HORIZONTAL
, the above
comments refer to "rightwards" for positive direction, and "leftwards"
for negative.
Parameters: visibleRect The rectangle to scroll an element into orientation One of the numeric consants VERTICAL
or HORIZONTAL
direction An integer indicating the scroll direction: positive means
forwards (down, right), negative means backwards (up, left)
Returns: The scrollable unit increment, in pixels
Returns: true
if the viewport is larger (vertically)
than the list and the list should be expanded to fit the viewport;
false
if the viewport is smaller than the list and the
list should scroll (vertically) within the viewport
scrollableTracksViewportWidth
property.
Returns: true
if the viewport is larger (horizontally)
than the list and the list should be expanded to fit the viewport;
false
if the viewport is smaller than the list and the
list should scroll (horizontally) within the viewport
Return the number of pixels the list must scroll in order to move a "unit" of the list into the provided visible rectangle. When the provided direction is positive, the call describes a "downwards" scroll, which will be exposing a cell at a greater index in the list than those elements currently showing. Then the provided direction is negative, the call describes an "upwards" scroll, which will be exposing a cell at a lesser index in the list than those elements currently showing.
If the provided orientation is HORIZONTAL
, the above
comments refer to "rightwards" for positive direction, and "leftwards"
for negative.
Parameters: visibleRect The rectangle to scroll an element into orientation One of the numeric consants VERTICAL
or HORIZONTAL
direction An integer indicating the scroll direction: positive means
forwards (down, right), negative means backwards (up, left)
Returns: The scrollable unit increment, in pixels
Returns: A number in the half-open range [0, x)
where
x = getModel.getSize()
, indicating the minimum index of
an element in the list for which the element is selected, or
-1
if no elements are selected
Returns: An array of model indices, each of which is selected according to the {@link #getSelectedValues} property
getModel()getElementAt(getSelectedIndex())
, with a check
for the special index value of -1
which returns null
null
.
Returns: The first selected element, or null
if no element
is selected.
See Also: JList
Returns: An array containing all the selected values
See Also: JList
Returns: The current value of the property
Returns: The current value of the property
Returns: The selection mode.
See Also: JList
Returns: The selection model.
Returns: The current property value
"ListUI"
, and map to an
appropriate UI class in the {@link UIManager}.
Returns: The class identifier
valueIsAdjusting
flag from the list's selection
model.
Returns: the value
Returns: the current value of the property.
See Also: JList
Parameters: index of the cell for which location will be determined
Returns: location of the cell located at the specified index in the list.
Parameters: a The index to check
Returns: true
if a
is the index of a selected
list element
true
if the model's selection is empty, otherwise
false
.
Returns: The return value of {@link ListSelectionModel#isSelectionEmpty}
-1
is returned.
Parameters: location for which to look for in the list
Returns: index of the cell to which specified location is closest to.
JList
component, for use in debugging. The return value is guaranteed to be
non-null
, but the format of the string may vary between
implementations.
Returns: A string describing the attributes of the JList
.
Parameters: listener The listener to remove
index0
can be less than, equal to, or greater than
index1
.
Parameters: index0 an index for one end of the range. index1 an index for the other end of the range.
Parameters: renderer The new property value
dragEnabled
property.
Parameters: enabled new value
Since: 1.4
-1
to indicate that no cell height has been
set. This property is also set implicitly when the {@link
#prototypeCellValue} property is set, but setting it explicitly
overrides the height computed from {@link #prototypeCellValue}.
Parameters: h the height.
-1
to indicate that no cell width has been
set. This property is also set implicitly when the {@link
#prototypeCellValue} property is set, but setting it explicitly
overrides the width computed from {@link #prototypeCellValue}.
Parameters: w the width.
Parameters: orientation the orientation.
Throws: IllegalArgumentException if orientation
is not one
of the specified values.
Since: 1.4
See Also: getLayoutOrientation
Parameters: listData The object array to build a new list model on
See Also: JList
Parameters: listData The object array to build a new list model on
See Also: JList
Parameters: model the new model (null
not permitted).
Throws: IllegalArgumentException if model
is
null
.
Set the {@link #prototypeCellValue} property. This property holds a reference to a "prototype" data value -- typically a String -- which is used to calculate the {@link #fixedCellWidth} and {@link #fixedCellHeight} properties, using the {@link #cellRenderer} property to acquire a component to render the prototype.
It is important that you not set this value to a component. It has to be a data value such as the objects you would find in the list's model. Setting it to a component will have undefined (and undesirable) affects.
Parameters: obj The new prototype cell value
See Also: JList
[a,a]
to the set of selections managed
by this list's {@link #selectionModel} property. Depending on the
selection mode, this may cause existing selections to become invalid,
or may simply expand the set of selections.
Parameters: a A number in the half-open range [0, x)
where
x = getModel.getSize()
, indicating the index of an
element in the list to select. When < 0 the selection is cleared.
See Also: JList selectionModel
a[i]
of the provided array
a
, calls {@link #setSelectedIndex} on a[i]
.
Parameters: a an array of selected indices (null
not permitted).
Throws: NullPointerException if a
is null
.
See Also: JList selectionModel
Parameters: obj The object to select scroll Whether to scroll the list to make the newly selected value visible
See Also: JList
Parameters: c The new value of the property
Parameters: c The new value of the property
anchor
can be less than, equal to, or greater than
lead
.
Parameters: anchor the index of the anchor item. lead the index of the anchor item.
SINGLE_SELECTION
, SINGLE_INTERVAL_SELECTION
,
or MULTIPLE_INTERVAL_SELECTION
from the {@link
ListSelectionModel} interface.
Parameters: a The new selection mode
Parameters: model The new property value
Parameters: ui The new property value
valueIsAdjusting
flag in the list's selection
model.
Parameters: isAdjusting the new value
Parameters: vc The new property value
See Also: getVisibleRowCount