javax.swing

Class JList

Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Scrollable, Serializable

public class JList
extends JComponent
implements Accessible, Scrollable

This class is a facade over three separate objects: ListModel, ListSelectionModel and 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 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 inBound?
accessibleContext list no
anchorSelectionIndex selectionno
cellRenderer list yes
dragEnabled list no
firstVisibleIndex list no
fixedCellHeight list yes
fixedCellWidth list yes
lastVisibleIndex list no
layoutOrientation list yes
leadSelectionIndex selectionno
maxSelectionIndex selectionno
minSelectionIndex selectionno
model list yes
opaque list no
preferredScrollableViewportSizelist no
prototypeCellValue list yes
scrollableTracksViewportHeight list no
scrollableTracksViewportWidth list no
selectedIndex selectionno
selectedIndices selectionno
selectedValue model no
selectedValues model no
selectionBackground list yes
selectionEmpty selectionno
selectionForeground list yes
selectionMode selectionno
selectionModel list yes
UI list yes
UIClassID list no
valueIsAdjusting list no
visibleRowCount list no
See Also:
Serialized Form

Nested Class Summary

protected class
JList.AccessibleJList
Provides accessibility support for JList.

Nested classes/interfaces inherited from class javax.swing.JComponent

JComponent.AccessibleJComponent

Nested classes/interfaces inherited from class java.awt.Container

Container.AccessibleAWTContainer

Nested classes/interfaces inherited from class java.awt.Component

Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy

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.

Fields inherited from class javax.swing.JComponent

TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, accessibleContext, listenerList, ui

Fields inherited from class java.awt.Component

BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT

Fields inherited from interface java.awt.image.ImageObserver

ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH

Constructor Summary

JList()
Creates a new JList object.
JList(Vector items)
Creates a new JList object.
JList(Object[] items)
Creates a new JList object.
JList(ListModel model)
Creates a new JList object.

Method Summary

void
addListSelectionListener(ListSelectionListener listener)
Adds a 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 ListSelectionEvent to all the registered ListSelectionListeners.
AccessibleContext
getAccessibleContext()
If a component supports the Accessibility API then this method should not return null.
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 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 Component.getComponentOrientation() property.
int
getFixedCellHeight()
Gets the value of the fixedCellHeight property.
int
getFixedCellWidth()
Gets the value of the 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 Component.getComponentOrientation() property.
int
getLayoutOrientation()
Returns the layout orientation, which will be one of VERTICAL, VERTICAL_WRAP and 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 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 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 model property which are selected.
Object
getSelectedValue()
Returns the first value in the list's model property which is selected, according to the list's selectionModel property.
Object[]
getSelectedValues()
Returns all the values in the list's model property which are selected, according to the list's selectionModel property.
Color
getSelectionBackground()
Gets the value of the selectionBackground property.
Color
getSelectionForeground()
Gets the value of the selectionForeground property.
int
getSelectionMode()
Returns the selection mode for the list (one of: ListSelectionModel.SINGLE_SELECTION, ListSelectionModel.SINGLE_INTERVAL_SELECTION and ListSelectionModel.MULTIPLE_INTERVAL_SELECTION).
ListSelectionModel
getSelectionModel()
Returns the selection model for the 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 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 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 getCellRenderer() property.
void
setDragEnabled(boolean enabled)
Set the dragEnabled property.
void
setFixedCellHeight(int h)
Sets the value of the fixedCellHeight property.
void
setFixedCellWidth(int w)
Sets the value of the fixedCellWidth property.
void
setLayoutOrientation(int orientation)
Sets the layout orientation (this is a bound property with the name 'layoutOrientation').
void
setListData(Vector listData)
Sets the model property of the list to a new anonymous AbstractListModel subclass which accesses the provided vector directly.
void
setListData(Object[] listData)
Sets the model property of the list to a new anonymous AbstractListModel subclass which accesses the provided Object array directly.
void
setModel(ListModel model)
Sets the value of the model property.
void
setPrototypeCellValue(Object obj)
Set the prototypeCellValue property.
void
setSelectedIndex(int a)
Adds the interval [a,a] to the set of selections managed by this list's selectionModel property.
void
setSelectedIndices(int[] a)
For each element a[i] of the provided array a, calls setSelectedIndex(int) 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 selectionBackground property.
void
setSelectionForeground(Color c)
Sets the value of the 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 selectionModel property.
void
setSelectionModel(ListSelectionModel model)
Sets the value of the 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 visibleRowCount property.
void
updateUI()
Calls setUI(ListUI) with the ListUI subclass returned from calling UIManager.getUI(JComponent).

Methods inherited from class javax.swing.JComponent

addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, extends EventListener> T[] getListeners, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setNextFocusableComponent, setOpaque, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI

Methods inherited from class java.awt.Container

add, add, add, add, add, addContainerListener, addImpl, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, extends EventListener> T[] getListeners, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponentZOrder, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, validate, validateTree

Methods inherited from class java.awt.Component

action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, extends EventListener> T[] getListeners, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFocusable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFocusable, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

HORIZONTAL_WRAP

public static final int HORIZONTAL_WRAP
Constant value used in "layoutOrientation" property. This value means that cells are laid out in multiple columns "newspaper style", filling horizontally first, then vertically.
Field Value:
2

VERTICAL

public static final int VERTICAL
Constant value used in "layoutOrientation" property. This value means that cells are laid out in a single vertical column. This is the default.
Field Value:
0

VERTICAL_WRAP

public static final int VERTICAL_WRAP
Constant value used in "layoutOrientation" property. This value means that cells are laid out in multiple columns "newspaper style", filling vertically first, then horizontally.
Field Value:
1

Constructor Details

JList

public JList()
Creates a new JList object.

JList

public JList(Vector items)
Creates a new JList object.
Parameters:
items - the initial list items.

JList

public JList(Object[] items)
Creates a new JList object.
Parameters:
items - the initial list items.

JList

public JList(ListModel model)
Creates a new JList object.
Parameters:
model - a model containing the list items (null not permitted).
Throws:
IllegalArgumentException - if model is null.

Method Details

addListSelectionListener

public void addListSelectionListener(ListSelectionListener listener)
Adds a ListSelectionListener to the listener list for this list. The listener will be called back with a ListSelectionEvent any time the list's selectionModel property changes. The source of such events will be the JList, not the selection model.
Parameters:
listener - The new listener to add

addSelectionInterval

public void addSelectionInterval(int anchor,
                                 int lead)
Adds the specified interval to the current selection. Note that 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.

clearSelection

public void clearSelection()
Clears the current selection.

createSelectionModel

protected ListSelectionModel createSelectionModel()
Creates the default ListSelectionModel.
Returns:
the ListSelectionModel

ensureIndexIsVisible

public void ensureIndexIsVisible(int i)
Scrolls this list to make the specified cell visible. This only works if the list is contained within a viewport.
Parameters:
i - The list index to make visible

fireSelectionValueChanged

protected void fireSelectionValueChanged(int firstIndex,
                                         int lastIndex,
                                         boolean isAdjusting)
Fire a ListSelectionEvent to all the registered ListSelectionListeners.
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.

getAccessibleContext

public AccessibleContext getAccessibleContext()
If a component supports the Accessibility API then this method should not return null. Only classes which must extend an accessible class, but must not itself be accessible, may return null.
Specified by:
getAccessibleContext in interface Accessible
Overrides:
getAccessibleContext in interface JComponent
Returns:
the context associated with this accessible object

getAnchorSelectionIndex

public int getAnchorSelectionIndex()
Returns the index of the anchor item in the current selection, or -1 if there is no anchor item.
Returns:
The item index.

getCellBounds

public Rectangle getCellBounds(int index0,
                               int index1)
Returns the bounds of the rectangle that encloses both list cells with index0 and index1.
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

getCellRenderer

public ListCellRenderer getCellRenderer()
Gets the value of the cellRenderer property.
Returns:
The current value of the property

getDragEnabled

public boolean getDragEnabled()
Return the value of the dragEnabled property.
Returns:
the value
Since:
1.4

getFirstVisibleIndex

public int getFirstVisibleIndex()
Returns the list index of the upper left or upper right corner of the visible rectangle of this list, depending on the Component.getComponentOrientation() property.
Returns:
The index of the first visible list cell, or -1 if none is visible.

getFixedCellHeight

public int getFixedCellHeight()
Gets the value of the fixedCellHeight property. This property may be -1 to indicate that no cell height has been set. This property is also set implicitly when the prototypeCellValue property is set.
Returns:
The current value of the property

getFixedCellWidth

public int getFixedCellWidth()
Gets the value of the fixedCellWidth property. This property may be -1 to indicate that no cell width has been set. This property is also set implicitly when the prototypeCellValue property is set.
Returns:
The current value of the property

getLastVisibleIndex

public int getLastVisibleIndex()
Returns the list index of the lower right or lower left corner of the visible rectangle of this list, depending on the Component.getComponentOrientation() property.
Returns:
The index of the last visible list cell, or -1 if none is visible.

getLayoutOrientation

public int getLayoutOrientation()
Returns the layout orientation, which will be one of VERTICAL, VERTICAL_WRAP and HORIZONTAL_WRAP. The default value is VERTICAL.
Returns:
the orientation.
Since:
1.4

getLeadSelectionIndex

public int getLeadSelectionIndex()
Returns the index of the lead item in the current selection, or -1 if there is no lead item.
Returns:
The item index.

getListSelectionListeners

public ListSelectionListener[] getListSelectionListeners()
Returns an array of all ListSelectionListeners subscribed to this list.
Returns:
The current subscribed listeners
Since:
1.4

getMaxSelectionIndex

public int getMaxSelectionIndex()
Returns the highest item index in the current selection, or -1 if there is no selection.
Returns:
The index.

getMinSelectionIndex

public int getMinSelectionIndex()
Returns the lowest item index in the current selection, or -1 if there is no selection.
Returns:
The index.

getModel

public ListModel getModel()
Gets the value of the model property.
Returns:
The current value of the property

getNextMatch

public 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).
Parameters:
prefix - the prefix to search for in the cell values
startIndex - the index where to start searching from
direction - the search direction, either Position.Bias.Forward or Position.Bias.Backward (null is interpreted as 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

getPreferredScrollableViewportSize

public Dimension getPreferredScrollableViewportSize()
Returns a size indicating how much space this list would like to consume, when contained in a scrollable viewport. This is part of the Scrollable interface, which interacts with ScrollPaneLayout and JViewport to define scrollable objects.
Specified by:
getPreferredScrollableViewportSize in interface Scrollable
Returns:
The preferred size

getPrototypeCellValue

public Object getPrototypeCellValue()
Returns the current value of the prototypeCellValue property. This property holds a reference to a "prototype" data value -- typically a String -- which is used to calculate the fixedCellWidth and fixedCellHeight properties, using the cellRenderer property to acquire a component to render the prototype.
Returns:
The current prototype cell value

getScrollableBlockIncrement

public 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. 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.

Specified by:
getScrollableBlockIncrement in interface Scrollable
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

getScrollableTracksViewportHeight

public boolean getScrollableTracksViewportHeight()
Gets the value of the scrollableTracksViewportWidth property.
Specified by:
getScrollableTracksViewportHeight in interface Scrollable
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

getScrollableTracksViewportWidth

public boolean getScrollableTracksViewportWidth()
Gets the value of the scrollableTracksViewportWidth property.
Specified by:
getScrollableTracksViewportWidth in interface Scrollable
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

getScrollableUnitIncrement

public 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. 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.

Specified by:
getScrollableUnitIncrement in interface Scrollable
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

getSelectedIndex

public int getSelectedIndex()
Returns the minimum index of an element in the list which is currently selected.
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

getSelectedIndices

public int[] getSelectedIndices()
Returns the indices of values in the model property which are selected.
Returns:
An array of model indices, each of which is selected according to the getSelectedValues() property

getSelectedValue

public Object getSelectedValue()
Returns the first value in the list's model property which is selected, according to the list's selectionModel property. This is equivalent to calling 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.

getSelectedValues

public Object[] getSelectedValues()
Returns all the values in the list's model property which are selected, according to the list's selectionModel property.
Returns:
An array containing all the selected values

getSelectionBackground

public Color getSelectionBackground()
Gets the value of the selectionBackground property.
Returns:
The current value of the property

getSelectionForeground

public Color getSelectionForeground()
Gets the value of the selectionForeground property.
Returns:
The current value of the property

getSelectionMode

public int getSelectionMode()
Returns:
The selection mode.

getSelectionModel

public ListSelectionModel getSelectionModel()
Returns the selection model for the JList component. Note that this class contains a range of convenience methods for configuring the selection model:
Returns:
The selection model.

getUI

public ListUI getUI()
Gets the value of the UI property.
Returns:
The current property value

getUIClassID

public String getUIClassID()
Return the class identifier for the list's UI property. This should be the constant string "ListUI", and map to an appropriate UI class in the UIManager.
Overrides:
getUIClassID in interface JComponent
Returns:
The class identifier

getValueIsAdjusting

public boolean getValueIsAdjusting()
Returns the valueIsAdjusting flag from the list's selection model.
Returns:
the value

getVisibleRowCount

public int getVisibleRowCount()
Gets the value of the visibleRowCount property. The default value is 8.
Returns:
the current value of the property.

indexToLocation

public Point indexToLocation(int index)
Returns location of the cell located at the specified index in the list.
Parameters:
index - of the cell for which location will be determined
Returns:
location of the cell located at the specified index in the list.

isSelectedIndex

public boolean isSelectedIndex(int a)
Indicates whether the list element at a given index value is currently selected.
Parameters:
a - The index to check
Returns:
true if a is the index of a selected list element

isSelectionEmpty

public boolean isSelectionEmpty()
Returns true if the model's selection is empty, otherwise false.
Returns:
The return value of ListSelectionModel.isSelectionEmpty()

locationToIndex

public int locationToIndex(Point location)
Returns index of the cell to which specified location is closest to. If the location is outside the bounds of the list, then the greatest index in the list model is returned. If the list model is empty, then -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.

paramString

protected String paramString()
Returns a string describing the attributes for the 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.
Overrides:
paramString in interface JComponent
Returns:
A string describing the attributes of the JList.

removeListSelectionListener

public void removeListSelectionListener(ListSelectionListener listener)
Removes a ListSelectionListener from the listener list for this list. The listener will no longer be called when the list's selectionModel changes.
Parameters:
listener - The listener to remove

removeSelectionInterval

public void removeSelectionInterval(int index0,
                                    int index1)
Removes the specified interval from the current selection. Note that 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.

setCellRenderer

public void setCellRenderer(ListCellRenderer renderer)
Sets the value of the getCellRenderer() property.
Parameters:
renderer - The new property value

setDragEnabled

public void setDragEnabled(boolean enabled)
Set the dragEnabled property.
Parameters:
enabled - new value
Since:
1.4

setFixedCellHeight

public void setFixedCellHeight(int h)
Sets the value of the fixedCellHeight property. This property may be -1 to indicate that no cell height has been set. This property is also set implicitly when the prototypeCellValue property is set, but setting it explicitly overrides the height computed from prototypeCellValue.
Parameters:
h - the height.

setFixedCellWidth

public void setFixedCellWidth(int w)
Sets the value of the fixedCellWidth property. This property may be -1 to indicate that no cell width has been set. This property is also set implicitly when the prototypeCellValue property is set, but setting it explicitly overrides the width computed from prototypeCellValue.
Parameters:
w - the width.

setLayoutOrientation

public void setLayoutOrientation(int orientation)
Sets the layout orientation (this is a bound property with the name 'layoutOrientation'). Valid orientations are VERTICAL, VERTICAL_WRAP and HORIZONTAL_WRAP.
Parameters:
orientation - the orientation.
Throws:
IllegalArgumentException - if orientation is not one of the specified values.
Since:
1.4

setListData

public void setListData(Vector listData)
Sets the model property of the list to a new anonymous AbstractListModel subclass which accesses the provided vector directly.
Parameters:
listData - The object array to build a new list model on

setListData

public void setListData(Object[] listData)
Sets the model property of the list to a new anonymous AbstractListModel subclass which accesses the provided Object array directly.
Parameters:
listData - The object array to build a new list model on

setModel

public void setModel(ListModel model)
Sets the value of the model property. The list's listListener is unsubscribed from the existing model, if it exists, and re-subscribed to the new model.
Parameters:
model - the new model (null not permitted).
Throws:
IllegalArgumentException - if model is null.

setPrototypeCellValue

public void setPrototypeCellValue(Object obj)
Set the prototypeCellValue property. This property holds a reference to a "prototype" data value -- typically a String -- which is used to calculate the fixedCellWidth and fixedCellHeight properties, using the 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

setSelectedIndex

public void setSelectedIndex(int a)
Adds the interval [a,a] to the set of selections managed by this list's 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.

setSelectedIndices

public void setSelectedIndices(int[] a)
For each element a[i] of the provided array a, calls setSelectedIndex(int) on a[i].
Parameters:
a - an array of selected indices (null not permitted).
Throws:
NullPointerException - if a is null.

setSelectedValue

public void setSelectedValue(Object obj,
                             boolean scroll)
Sets the selection to cover only the specified value, if it exists in the model.
Parameters:
obj - The object to select
scroll - Whether to scroll the list to make the newly selected value visible

setSelectionBackground

public void setSelectionBackground(Color c)
Sets the value of the selectionBackground property.
Parameters:
c - The new value of the property

setSelectionForeground

public void setSelectionForeground(Color c)
Sets the value of the selectionForeground property.
Parameters:
c - The new value of the property

setSelectionInterval

public void setSelectionInterval(int anchor,
                                 int lead)
Sets the current selection to the items in the specified range (inclusive). Note that 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.

setSelectionMode

public void setSelectionMode(int a)
Sets the list's "selectionMode" property, which simply mirrors the same property on the list's selectionModel property. This property should be one of the integer constants SINGLE_SELECTION, SINGLE_INTERVAL_SELECTION, or MULTIPLE_INTERVAL_SELECTION from the ListSelectionModel interface.
Parameters:
a - The new selection mode

setSelectionModel

public void setSelectionModel(ListSelectionModel model)
Sets the value of the selectionModel property. The list's listListener is unsubscribed from the existing selection model, if it exists, and re-subscribed to the new selection model.
Parameters:
model - The new property value

setUI

public void setUI(ListUI ui)
Sets the value of the UI property.
Parameters:
ui - The new property value

setValueIsAdjusting

public void setValueIsAdjusting(boolean isAdjusting)
Sets the valueIsAdjusting flag in the list's selection model.
Parameters:
isAdjusting - the new value

setVisibleRowCount

public void setVisibleRowCount(int vc)
Sets the value of the visibleRowCount property.
Parameters:
vc - The new property value

updateUI

public void updateUI()
Calls setUI(ListUI) with the ListUI subclass returned from calling UIManager.getUI(JComponent).
Overrides:
updateUI in interface JComponent

JList.java -- Copyright (C) 2002, 2003, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.