| 
 | Java™ Platform Standard Ed. 6 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JList
public class JList
A component that displays a list of objects and allows the user to select
 one or more items. A separate model, ListModel, maintains the
 contents of the list.
 
 It's easy to display an array or Vector of objects, using the JList
 constructor that automatically builds a read-only ListModel instance
 for you:
 
 // Create a JList that displays strings from an array
 String[] data = {"one", "two", "three", "four"};
 JList myList = new JList(data);
 // Create a JList that displays the superclasses of JList.class, by
 // creating it with a Vector populated with this data
 Vector superClasses = new Vector();
 Class rootClass = javax.swing.JList.class;
 for(Class cls = rootClass; cls != null; cls = cls.getSuperclass()) {
     superClasses.addElement(cls);
 }
 JList myList = new JList(superClasses);
 
 // The automatically created model is stored in JList's "model"
 // property, which you can retrieve
 ListModel model = myList.getModel();
 for(int i = 0; i < model.getSize(); i++) {
     System.out.println(model.getElementAt(i));
 }
 
 
 A ListModel can be supplied directly to a JList by way of a
 constructor or the setModel method. The contents need not be static -
 the number of items, and the values of items can change over time. A correct
 ListModel implementation notifies the set of
 javax.swing.event.ListDataListeners that have been added to it, each
 time a change occurs. These changes are characterized by a
 javax.swing.event.ListDataEvent, which identifies the range of list
 indices that have been modified, added, or removed. JList's
 ListUI is responsible for keeping the visual representation up to
 date with changes, by listening to the model.
 
 Simple, dynamic-content, JList applications can use the
 DefaultListModel class to maintain list elements. This class
 implements the ListModel interface and also provides a
 java.util.Vector-like API. Applications that need a more
 custom ListModel implementation may instead wish to subclass
 AbstractListModel, which provides basic support for managing and
 notifying listeners. For example, a read-only implementation of
 AbstractListModel:
 
 // This list model has about 2^16 elements.  Enjoy scrolling.
 ListModel bigData = new AbstractListModel() {
     public int getSize() { return Short.MAX_VALUE; }
     public Object getElementAt(int index) { return "Index " + index; }
 };
 
 
 The selection state of a JList is managed by another separate
 model, an instance of ListSelectionModel. JList is
 initialized with a selection model on construction, and also contains
 methods to query or set this selection model. Additionally, JList
 provides convenient methods for easily managing the selection. These methods,
 such as setSelectedIndex and getSelectedValue, are cover
 methods that take care of the details of interacting with the selection
 model. By default, JList's selection model is configured to allow any
 combination of items to be selected at a time; selection mode
 MULTIPLE_INTERVAL_SELECTION. The selection mode can be changed
 on the selection model directly, or via JList's cover method.
 Responsibility for updating the selection model in response to user gestures
 lies with the list's ListUI.
 
 A correct ListSelectionModel implementation notifies the set of
 javax.swing.event.ListSelectionListeners that have been added to it
 each time a change to the selection occurs. These changes are characterized
 by a javax.swing.event.ListSelectionEvent, which identifies the range
 of the selection change.
 
 The preferred way to listen for changes in list selection is to add
 ListSelectionListeners directly to the JList. JList
 then takes care of listening to the the selection model and notifying your
 listeners of change.
 
 Responsibility for listening to selection changes in order to keep the list's
 visual representation up to date lies with the list's ListUI.
 
 
 Painting of cells in a  
 Another job for the cell renderer is in helping to determine sizing
 information for the list. By default, the list's  
  
  
 Warning: Swing is not thread safe. For more
 information see Swing's Threading
 Policy.
  
 Warning:
 Serialized objects of this class will not be compatible with
 future Swing releases. The current serialization support is
 appropriate for short term storage or RMI between applications running
 the same version of Swing.  As of 1.4, support for long term storage
 of all JavaBeansTM
 has been added to the  
 See How to Use Lists
 in The Java Tutorial
 for further documentation.
 Also see the article Advanced JList Programming
 in The Swing Connection.
  
 
 
JList is handled by a delegate called a
 cell renderer, installed on the list as the cellRenderer property.
 The renderer provides a java.awt.Component that is used
 like a "rubber stamp" to paint the cells. Each time a cell needs to be
 painted, the list's ListUI asks the cell renderer for the component,
 moves it into place, and has it paint the contents of the cell by way of its
 paint method. A default cell renderer, which uses a JLabel
 component to render, is installed by the lists's ListUI. You can
 substitute your own renderer using code like this:
 
  // Display an icon and a string for each object in the list.
 class MyCellRenderer extends JLabel implements ListCellRenderer {
     final static ImageIcon longIcon = new ImageIcon("long.gif");
     final static ImageIcon shortIcon = new ImageIcon("short.gif");
     // This is the only method defined by ListCellRenderer.
     // We just reconfigure the JLabel each time we're called.
     public Component getListCellRendererComponent(
       JList list,              // the list
       Object value,            // value to display
       int index,               // cell index
       boolean isSelected,      // is the cell selected
       boolean cellHasFocus)    // does the cell have focus
     {
         String s = value.toString();
         setText(s);
         setIcon((s.length() > 10) ? longIcon : shortIcon);
         if (isSelected) {
             setBackground(list.getSelectionBackground());
             setForeground(list.getSelectionForeground());
         } else {
             setBackground(list.getBackground());
             setForeground(list.getForeground());
         }
         setEnabled(list.isEnabled());
         setFont(list.getFont());
         setOpaque(true);
         return this;
     }
 }
 myList.setCellRenderer(new MyCellRenderer());
 
 ListUI determines
 the size of cells by asking the cell renderer for its preferred
 size for each list item. This can be expensive for large lists of items.
 To avoid these calculations, you can set a fixedCellWidth and
 fixedCellHeight on the list, or have these values calculated
 automatically based on a single prototype value:
 
 
 JList bigDataList = new JList(bigData);
 // We don't want the JList implementation to compute the width
 // or height of all of the list cells, so we give it a string
 // that's as big as we'll need for any cell.  It uses this to
 // compute values for the fixedCellWidth and fixedCellHeight
 // properties.
 bigDataList.setPrototypeCellValue("Index 1234567890");
 
 JList doesn't implement scrolling directly. To create a list that
 scrolls, make it the viewport view of a JScrollPane. For example:
 
 JScrollPane scrollPane = new JScrollPane(myList);
 // Or in two steps:
 JScrollPane scrollPane = new JScrollPane();
 scrollPane.getViewport().setView(myList);
 
 JList doesn't provide any special handling of double or triple
 (or N) mouse clicks, but it's easy to add a MouseListener if you
 wish to take action on these events. Use the locationToIndex
 method to determine what cell was clicked. For example:
 
 MouseListener mouseListener = new MouseAdapter() {
     public void mouseClicked(MouseEvent e) {
         if (e.getClickCount() == 2) {
             int index = list.locationToIndex(e.getPoint());
             System.out.println("Double clicked on Item " + index);
          }
     }
 };
 list.addMouseListener(mouseListener);
 
 java.beans package.
 Please see XMLEncoder.
 
ListModel, 
AbstractListModel, 
DefaultListModel, 
ListSelectionModel, 
DefaultListSelectionModel, 
ListCellRenderer, 
DefaultListCellRenderer
| Nested Class Summary | |
|---|---|
| protected  class | JList.AccessibleJListThis class implements accessibility support for the JListclass. | 
| static class | JList.DropLocationA subclass of TransferHandler.DropLocationrepresenting
 a drop location for aJList. | 
| 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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy | 
| Field Summary | |
|---|---|
| static int | HORIZONTAL_WRAPIndicates a "newspaper style" layout with cells flowing horizontally then vertically. | 
| static int | VERTICALIndicates a vertical layout of cells, in a single column; the default layout. | 
| static int | VERTICAL_WRAPIndicates a "newspaper style" layout with cells flowing vertically then horizontally. | 
| Fields inherited from class javax.swing.JComponent | 
|---|
| accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW | 
| 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()Constructs a JListwith an empty, read-only, model. | |
| JList(ListModel dataModel)Constructs a JListthat displays elements from the specified,non-null, model. | |
| JList(Object[] listData)Constructs a JListthat displays the elements in
 the specified array. | |
| JList(Vector<?> listData)Constructs a JListthat displays the elements in
 the specifiedVector. | |
| Method Summary | |
|---|---|
|  void | addListSelectionListener(ListSelectionListener listener)Adds a listener to the list, to be notified each time a change to the selection occurs; the preferred way of listening for selection state changes. | 
|  void | addSelectionInterval(int anchor,
                     int lead)Sets the selection to be the union of the specified interval with current selection. | 
|  void | clearSelection()Clears the selection; after calling this method, isSelectionEmptywill returntrue. | 
| protected  ListSelectionModel | createSelectionModel()Returns an instance of DefaultListSelectionModel; called
 during construction to initialize the list's selection model
 property. | 
|  void | ensureIndexIsVisible(int index)Scrolls the list within an enclosing viewport to make the specified cell completely visible. | 
| protected  void | fireSelectionValueChanged(int firstIndex,
                          int lastIndex,
                          boolean isAdjusting)Notifies ListSelectionListeners added directly to the list
 of selection changes made to the selection model. | 
|  AccessibleContext | getAccessibleContext()Gets the AccessibleContextassociated with thisJList. | 
|  int | getAnchorSelectionIndex()Returns the anchor selection index. | 
|  Rectangle | getCellBounds(int index0,
              int index1)Returns the bounding rectangle, in the list's coordinate system, for the range of cells specified by the two indices. | 
|  ListCellRenderer | getCellRenderer()Returns the object responsible for painting list items. | 
|  boolean | getDragEnabled()Returns whether or not automatic drag handling is enabled. | 
|  JList.DropLocation | getDropLocation()Returns the location that this component should visually indicate as the drop location during a DnD operation over the component, or nullif no location is to currently be shown. | 
|  DropMode | getDropMode()Returns the drop mode for this component. | 
|  int | getFirstVisibleIndex()Returns the smallest list index that is currently visible. | 
|  int | getFixedCellHeight()Returns the value of the fixedCellHeightproperty. | 
|  int | getFixedCellWidth()Returns the value of the fixedCellWidthproperty. | 
|  int | getLastVisibleIndex()Returns the largest list index that is currently visible. | 
|  int | getLayoutOrientation()Returns the layout orientation property for the list: VERTICALif the layout is a single column of cells,VERTICAL_WRAPif the
 layout is "newspaper style" with the content flowing vertically then
 horizontally, orHORIZONTAL_WRAPif the layout is "newspaper
 style" with the content flowing horizontally then vertically. | 
|  int | getLeadSelectionIndex()Returns the lead selection index. | 
|  ListSelectionListener[] | getListSelectionListeners()Returns an array of all the ListSelectionListeners added
 to thisJListby way ofaddListSelectionListener. | 
|  int | getMaxSelectionIndex()Returns the largest selected cell index, or -1if the selection
 is empty. | 
|  int | getMinSelectionIndex()Returns the smallest selected cell index, or -1if the selection
 is empty. | 
|  ListModel | getModel()Returns the data model that holds the list of items displayed by the JListcomponent. | 
|  int | getNextMatch(String prefix,
             int startIndex,
             Position.Bias bias)Returns the next list element whose toStringvalue
 starts with the given prefix. | 
|  Dimension | getPreferredScrollableViewportSize()Computes the size of viewport needed to display visibleRowCountrows. | 
|  Object | getPrototypeCellValue()Returns the "prototypical" cell value -- a value used to calculate a fixed width and height for cells. | 
|  int | getScrollableBlockIncrement(Rectangle visibleRect,
                            int orientation,
                            int direction)Returns the distance to scroll to expose the next or previous block. | 
|  boolean | getScrollableTracksViewportHeight()Returns trueif thisJListis displayed in aJViewportand the viewport is taller than the list's
 preferred height, or if the layout orientation isVERTICAL_WRAPandvisibleRowCount <= 0; otherwise returnsfalse. | 
|  boolean | getScrollableTracksViewportWidth()Returns trueif thisJListis displayed in aJViewportand the viewport is wider than the list's
 preferred width, or if the layout orientation isHORIZONTAL_WRAPandvisibleRowCount <= 0; otherwise returnsfalse. | 
|  int | getScrollableUnitIncrement(Rectangle visibleRect,
                           int orientation,
                           int direction)Returns the distance to scroll to expose the next or previous row (for vertical scrolling) or column (for horizontal scrolling). | 
|  int | getSelectedIndex()Returns the smallest selected cell index; the selection when only a single item is selected in the list. | 
|  int[] | getSelectedIndices()Returns an array of all of the selected indices, in increasing order. | 
|  Object | getSelectedValue()Returns the value for the smallest selected cell index; the selected value when only a single item is selected in the list. | 
|  Object[] | getSelectedValues()Returns an array of all the selected values, in increasing order based on their indices in the list. | 
|  Color | getSelectionBackground()Returns the color used to draw the background of selected items. | 
|  Color | getSelectionForeground()Returns the color used to draw the foreground of selected items. | 
|  int | getSelectionMode()Returns the current selection mode for the list. | 
|  ListSelectionModel | getSelectionModel()Returns the current selection model. | 
|  String | getToolTipText(MouseEvent event)Returns the tooltip text to be used for the given event. | 
|  ListUI | getUI()Returns the ListUI, the look and feel object that
 renders this component. | 
|  String | getUIClassID()Returns "ListUI", theUIDefaultskey used to look
 up the name of thejavax.swing.plaf.ListUIclass that defines
 the look and feel for this component. | 
|  boolean | getValueIsAdjusting()Returns the value of the selection model's isAdjustingproperty. | 
|  int | getVisibleRowCount()Returns the value of the visibleRowCountproperty. | 
|  Point | indexToLocation(int index)Returns the origin of the specified item in the list's coordinate system. | 
|  boolean | isSelectedIndex(int index)Returns trueif the specified index is selected,
 elsefalse. | 
|  boolean | isSelectionEmpty()Returns trueif nothing is selected, elsefalse. | 
|  int | locationToIndex(Point location)Returns the cell index closest to the given location in the list's coordinate system. | 
| protected  String | paramString()Returns a Stringrepresentation of thisJList. | 
|  void | removeListSelectionListener(ListSelectionListener listener)Removes a selection listener from the list. | 
|  void | removeSelectionInterval(int index0,
                        int index1)Sets the selection to be the set difference of the specified interval and the current selection. | 
|  void | setCellRenderer(ListCellRenderer cellRenderer)Sets the delegate that is used to paint each cell in the list. | 
|  void | setDragEnabled(boolean b)Turns on or off automatic drag handling. | 
|  void | setDropMode(DropMode dropMode)Sets the drop mode for this component. | 
|  void | setFixedCellHeight(int height)Sets a fixed value to be used for the height of every cell in the list. | 
|  void | setFixedCellWidth(int width)Sets a fixed value to be used for the width of every cell in the list. | 
|  void | setLayoutOrientation(int layoutOrientation)Defines the way list cells are layed out. | 
|  void | setListData(Object[] listData)Constructs a read-only ListModelfrom an array of objects,
 and callssetModelwith this model. | 
|  void | setListData(Vector<?> listData)Constructs a read-only ListModelfrom aVectorand callssetModelwith this model. | 
|  void | setModel(ListModel model)Sets the model that represents the contents or "value" of the list, notifies property change listeners, and then clears the list's selection. | 
|  void | setPrototypeCellValue(Object prototypeCellValue)Sets the prototypeCellValueproperty, and then (if the new value
 isnon-null), computes thefixedCellWidthandfixedCellHeightproperties by requesting the cell renderer
 component for the given value (and index 0) from the cell renderer, and
 using that component's preferred size. | 
|  void | setSelectedIndex(int index)Selects a single cell. | 
|  void | setSelectedIndices(int[] indices)Changes the selection to be the set of indices specified by the given array. | 
|  void | setSelectedValue(Object anObject,
                 boolean shouldScroll)Selects the specified object from the list. | 
|  void | setSelectionBackground(Color selectionBackground)Sets the color used to draw the background of selected items, which cell renderers can use fill selected cells. | 
|  void | setSelectionForeground(Color selectionForeground)Sets the color used to draw the foreground of selected items, which cell renderers can use to render text and graphics. | 
|  void | setSelectionInterval(int anchor,
                     int lead)Selects the specified interval. | 
|  void | setSelectionMode(int selectionMode)Sets the selection mode for the list. | 
|  void | setSelectionModel(ListSelectionModel selectionModel)Sets the selectionModelfor the list to a
 non-nullListSelectionModelimplementation. | 
|  void | setUI(ListUI ui)Sets the ListUI, the look and feel object that
 renders this component. | 
|  void | setValueIsAdjusting(boolean b)Sets the selection model's valueIsAdjustingproperty. | 
|  void | setVisibleRowCount(int visibleRowCount)Sets the visibleRowCountproperty, which has different meanings
 depending on the layout orientation: For aVERTICALlayout
 orientation, this sets the preferred number of rows to display without
 requiring scrolling; for other orientations, it affects the wrapping of
 cells. | 
|  void | updateUI()Resets the ListUIproperty by setting it to the value provided
 by the current look and feel. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
| Field Detail | 
|---|
public static final int VERTICAL
setLayoutOrientation(int), 
Constant Field Valuespublic static final int VERTICAL_WRAP
setLayoutOrientation(int), 
Constant Field Valuespublic static final int HORIZONTAL_WRAP
setLayoutOrientation(int), 
Constant Field Values| Constructor Detail | 
|---|
public JList(ListModel dataModel)
JList that displays elements from the specified,
 non-null, model. All JList constructors delegate to
 this one.
 
 This constructor registers the list with the ToolTipManager,
 allowing for tooltips to be provided by the cell renderers.
dataModel - the model for the list
IllegalArgumentException - if the model is nullpublic JList(Object[] listData)
JList that displays the elements in
 the specified array. This constructor creates a read-only model
 for the given array, and then delegates to the constructor that
 takes a ListModel.
 
 Attempts to pass a null value to this method results in
 undefined behavior and, most likely, exceptions. The created model
 references the given array directly. Attempts to modify the array
 after constructing the list results in undefined behavior.
listData - the array of Objects to be loaded into the data model,
                   non-nullpublic JList(Vector<?> listData)
JList that displays the elements in
 the specified Vector. This constructor creates a read-only
 model for the given Vector, and then delegates to the constructor
 that takes a ListModel.
 
 Attempts to pass a null value to this method results in
 undefined behavior and, most likely, exceptions. The created model
 references the given Vector directly. Attempts to modify the
 Vector after constructing the list results in undefined behavior.
listData - the Vector to be loaded into the
                         data model, non-nullpublic JList()
JList with an empty, read-only, model.
| Method Detail | 
|---|
public ListUI getUI()
ListUI, the look and feel object that
 renders this component.
ListUI object that renders this componentpublic void setUI(ListUI ui)
ListUI, the look and feel object that
 renders this component.
ui - the ListUI objectUIDefaults.getUI(javax.swing.JComponent)public void updateUI()
ListUI property by setting it to the value provided
 by the current look and feel. If the current cell renderer was installed
 by the developer (rather than the look and feel itself), this also causes
 the cell renderer and its children to be updated, by calling
 SwingUtilities.updateComponentTreeUI on it.
updateUI in class JComponentUIManager.getUI(javax.swing.JComponent), 
SwingUtilities.updateComponentTreeUI(java.awt.Component)public String getUIClassID()
"ListUI", the UIDefaults key used to look
 up the name of the javax.swing.plaf.ListUI class that defines
 the look and feel for this component.
getUIClassID in class JComponentJComponent.getUIClassID(), 
UIDefaults.getUI(javax.swing.JComponent)public Object getPrototypeCellValue()
null if there
 is no such value.
prototypeCellValue propertysetPrototypeCellValue(java.lang.Object)public void setPrototypeCellValue(Object prototypeCellValue)
prototypeCellValue property, and then (if the new value
 is non-null), computes the fixedCellWidth and
 fixedCellHeight properties by requesting the cell renderer
 component for the given value (and index 0) from the cell renderer, and
 using that component's preferred size.
 
 This method is useful when the list is too long to allow the
 ListUI to compute the width/height of each cell, and there is a
 single cell value that is known to occupy as much space as any of the
 others, a so-called prototype.
 
 While all three of the prototypeCellValue,
 fixedCellHeight, and fixedCellWidth properties may be
 modified by this method, PropertyChangeEvent notifications are
 only sent when the prototypeCellValue property changes.
 
To see an example which sets this property, see the class description above.
 The default value of this property is null.
 
This is a JavaBeans bound property.
prototypeCellValue - the value on which to base
                                fixedCellWidth and
                                fixedCellHeightgetPrototypeCellValue(), 
setFixedCellWidth(int), 
setFixedCellHeight(int), 
Container.addPropertyChangeListener(java.beans.PropertyChangeListener)public int getFixedCellWidth()
fixedCellWidth property.
setFixedCellWidth(int)public void setFixedCellWidth(int width)
width is -1, cell widths are computed in the ListUI
 by applying getPreferredSize to the cell renderer component
 for each list element.
 
 The default value of this property is -1.
 
This is a JavaBeans bound property.
width - the width to be used for all cells in the listsetPrototypeCellValue(java.lang.Object), 
setFixedCellWidth(int), 
Container.addPropertyChangeListener(java.beans.PropertyChangeListener)public int getFixedCellHeight()
fixedCellHeight property.
setFixedCellHeight(int)public void setFixedCellHeight(int height)
height is -1, cell heights are computed in the ListUI
 by applying getPreferredSize to the cell renderer component
 for each list element.
 
 The default value of this property is -1.
 
This is a JavaBeans bound property.
height - the height to be used for for all cells in the listsetPrototypeCellValue(java.lang.Object), 
setFixedCellWidth(int), 
Container.addPropertyChangeListener(java.beans.PropertyChangeListener)public ListCellRenderer getCellRenderer()
cellRenderer propertysetCellRenderer(javax.swing.ListCellRenderer)public void setCellRenderer(ListCellRenderer cellRenderer)
 If the prototypeCellValue property is non-null,
 setting the cell renderer also causes the fixedCellWidth and
 fixedCellHeight properties to be re-calculated. Only one
 PropertyChangeEvent is generated however -
 for the cellRenderer property.
 
 The default value of this property is provided by the ListUI
 delegate, i.e. by the look and feel implementation.
 
This is a JavaBeans bound property.
cellRenderer - the ListCellRenderer
                                that paints list cellsgetCellRenderer()public Color getSelectionForeground()
DefaultListCellRenderer uses this color to draw the foreground
 of items in the selected state, as do the renderers installed by most
 ListUI implementations.
setSelectionForeground(java.awt.Color), 
DefaultListCellRendererpublic void setSelectionForeground(Color selectionForeground)
DefaultListCellRenderer uses this color to draw the foreground
 of items in the selected state, as do the renderers installed by most
 ListUI implementations.
 The default value of this property is defined by the look and feel implementation.
This is a JavaBeans bound property.
selectionForeground - the Color to use in the foreground
                             for selected list itemsgetSelectionForeground(), 
setSelectionBackground(java.awt.Color), 
JComponent.setForeground(java.awt.Color), 
JComponent.setBackground(java.awt.Color), 
JComponent.setFont(java.awt.Font), 
DefaultListCellRendererpublic Color getSelectionBackground()
DefaultListCellRenderer uses this color to draw the background
 of items in the selected state, as do the renderers installed by most
 ListUI implementations.
setSelectionBackground(java.awt.Color), 
DefaultListCellRendererpublic void setSelectionBackground(Color selectionBackground)
DefaultListCellRenderer uses this color to fill the background
 of items in the selected state, as do the renderers installed by most
 ListUI implementations.
 The default value of this property is defined by the look and feel implementation.
This is a JavaBeans bound property.
selectionBackground - the Color to use for the 
                             background of selected cellsgetSelectionBackground(), 
setSelectionForeground(java.awt.Color), 
JComponent.setForeground(java.awt.Color), 
JComponent.setBackground(java.awt.Color), 
JComponent.setFont(java.awt.Font), 
DefaultListCellRendererpublic int getVisibleRowCount()
visibleRowCount property. See the
 documentation for setVisibleRowCount(int) for details on how to
 interpret this value.
visibleRowCount property.setVisibleRowCount(int)public void setVisibleRowCount(int visibleRowCount)
visibleRowCount property, which has different meanings
 depending on the layout orientation: For a VERTICAL layout
 orientation, this sets the preferred number of rows to display without
 requiring scrolling; for other orientations, it affects the wrapping of
 cells.
 
 In VERTICAL orientation:
 Setting this property affects the return value of the
 getPreferredScrollableViewportSize() method, which is used to
 calculate the preferred size of an enclosing viewport. See that method's
 documentation for more details.
 
 In HORIZONTAL_WRAP and VERTICAL_WRAP orientations:
 This affects how cells are wrapped. See the documentation of
 setLayoutOrientation(int) for more details.
 
 The default value of this property is 8.
 
 Calling this method with a negative value results in the property
 being set to 0.
 
This is a JavaBeans bound property.
visibleRowCount - an integer specifying the preferred number of
                         rows to display without requiring scrollinggetVisibleRowCount(), 
getPreferredScrollableViewportSize(), 
setLayoutOrientation(int), 
JComponent.getVisibleRect(), 
JViewportpublic int getLayoutOrientation()
VERTICAL
 if the layout is a single column of cells, VERTICAL_WRAP if the
 layout is "newspaper style" with the content flowing vertically then
 horizontally, or HORIZONTAL_WRAP if the layout is "newspaper
 style" with the content flowing horizontally then vertically.
layoutOrientation propertysetLayoutOrientation(int)public void setLayoutOrientation(int layoutOrientation)
JList
 with five cells. Cells can be layed out in one of the following ways:
 
 VERTICAL:          0
                    1
                    2
                    3
                    4
 HORIZONTAL_WRAP:   0  1  2
                    3  4
 VERTICAL_WRAP:     0  3
                    1  4
                    2
 
 A description of these layouts follows:
| Value | Description | 
|---|---|
| VERTICAL | Cells are layed out vertically in a single column. | 
| HORIZONTAL_WRAP | Cells are layed out horizontally, wrapping to a new row as
           necessary. If the visibleRowCountproperty is less than
           or equal to zero, wrapping is determined by the width of the
           list; otherwise wrapping is done in such a way as to ensurevisibleRowCountrows in the list. | 
| VERTICAL_WRAP | Cells are layed out vertically, wrapping to a new column as
           necessary. If the visibleRowCountproperty is less than
           or equal to zero, wrapping is determined by the height of the
           list; otherwise wrapping is done atvisibleRowCountrows. | 
 The default value of this property is VERTICAL.
layoutOrientation - the new layout orientation, one of:
        VERTICAL, HORIZONTAL_WRAP or VERTICAL_WRAP
IllegalArgumentException - if layoutOrientation isn't one of the
         allowable valuesgetLayoutOrientation(), 
setVisibleRowCount(int), 
getScrollableTracksViewportHeight(), 
getScrollableTracksViewportWidth()public int getFirstVisibleIndex()
componentOrientation, the first visible
 cell is found closest to the list's upper-left corner. In right-to-left
 orientation, it is found closest to the upper-right corner.
 If nothing is visible or the list is empty, -1 is returned.
 Note that the returned cell may only be partially visible.
getLastVisibleIndex(), 
JComponent.getVisibleRect()public int getLastVisibleIndex()
-1 is returned.
 Note that the returned cell may only be partially visible.
getFirstVisibleIndex(), 
JComponent.getVisibleRect()public void ensureIndexIsVisible(int index)
scrollRectToVisible with
 the bounds of the specified cell. For this method to work, the
 JList must be within a JViewport.
 If the given index is outside the list's range of cells, this method results in nothing.
index - the index of the cell to make visibleJComponent.scrollRectToVisible(java.awt.Rectangle), 
JComponent.getVisibleRect()public void setDragEnabled(boolean b)
true, and the
 list's TransferHandler needs to be non-null.
 The default value of the dragEnabled property is false.
 
 The job of honoring this property, and recognizing a user drag gesture,
 lies with the look and feel implementation, and in particular, the list's
 ListUI. When automatic drag handling is enabled, most look and
 feels (including those that subclass BasicLookAndFeel) begin a
 drag and drop operation whenever the user presses the mouse button over
 an item and then moves the mouse a few pixels. Setting this property to
 true can therefore have a subtle effect on how selections behave.
 
 If a look and feel is used that ignores this property, you can still
 begin a drag and drop operation by calling exportAsDrag on the
 list's TransferHandler.
b - whether or not to enable automatic drag handling
HeadlessException - if
            b is true and
            GraphicsEnvironment.isHeadless()
            returns trueGraphicsEnvironment.isHeadless(), 
getDragEnabled(), 
JComponent.setTransferHandler(javax.swing.TransferHandler), 
TransferHandlerpublic boolean getDragEnabled()
dragEnabled propertysetDragEnabled(boolean)public final void setDropMode(DropMode dropMode)
DropMode.USE_SELECTION.
 Usage of one of the other modes is recommended, however, for an
 improved user experience. DropMode.ON, for instance,
 offers similar behavior of showing items as selected, but does so without
 affecting the actual selection in the list.
 
 JList supports the following drop modes:
 
DropMode.USE_SELECTIONDropMode.ONDropMode.INSERTDropMode.ON_OR_INSERTTransferHandler that accepts drops.
dropMode - the drop mode to use
IllegalArgumentException - if the drop mode is unsupported
         or nullgetDropMode(), 
getDropLocation(), 
JComponent.setTransferHandler(javax.swing.TransferHandler), 
TransferHandlerpublic final DropMode getDropMode()
setDropMode(javax.swing.DropMode)public final JList.DropLocation getDropLocation()
null if no location is to currently be shown.
 
 This method is not meant for querying the drop location
 from a TransferHandler, as the drop location is only
 set after the TransferHandler's canImport
 has returned and has allowed for the location to be shown.
 
When this property changes, a property change event with name "dropLocation" is fired by the component.
 By default, responsibility for listening for changes to this property
 and indicating the drop location visually lies with the list's
 ListUI, which may paint it directly and/or install a cell
 renderer to do so. Developers wishing to implement custom drop location
 painting and/or replace the default cell renderer, may need to honor
 this property.
setDropMode(javax.swing.DropMode), 
TransferHandler.canImport(TransferHandler.TransferSupport)
public int getNextMatch(String prefix,
                        int startIndex,
                        Position.Bias bias)
toString value
 starts with the given prefix.
prefix - the string to test for a matchstartIndex - the index for starting the searchbias - the search direction, either 
 Position.Bias.Forward or Position.Bias.Backward.
-1
IllegalArgumentException - if prefix is null
 or startIndex is out of boundspublic String getToolTipText(MouseEvent event)
JComponent's getToolTipText to first check the cell
 renderer component for the cell over which the event occurred, returning
 its tooltip text, if any. This implementation allows you to specify
 tooltip text on the cell level, by using setToolTipText on your
 cell renderer component.
 
 JList to properly display the
 tooltips of its renderers in this manner, JList must be a
 registered component with the ToolTipManager. This registration
 is done automatically in the constructor. However, if at a later point
 JList is unregistered, by way of a call to
 setToolTipText(null), tips from the renderers will no longer display.
getToolTipText in class JComponentevent - the MouseEvent to fetch the tooltip text forJComponent.setToolTipText(java.lang.String), 
JComponent.getToolTipText()public int locationToIndex(Point location)
getCellBounds. This method returns -1
 if the model is empty
 
 This is a cover method that delegates to the method of the same name
 in the list's ListUI. It returns -1 if the list has
 no ListUI.
location - the coordinates of the point
-1public Point indexToLocation(int index)
null if the index isn't valid.
 
 This is a cover method that delegates to the method of the same name
 in the list's ListUI. It returns null if the list has
 no ListUI.
index - the cell index
null
public Rectangle getCellBounds(int index0,
                               int index1)
 If the smaller index is outside the list's range of cells, this method
 returns null. If the smaller index is valid, but the larger
 index is outside the list's range, the bounds of just the first index
 is returned. Otherwise, the bounds of the valid range is returned.
 
 This is a cover method that delegates to the method of the same name
 in the list's ListUI. It returns null if the list has
 no ListUI.
index0 - the first index in the rangeindex1 - the second index in the range
nullpublic ListModel getModel()
JList component.
ListModel that provides the displayed
                                list of itemssetModel(javax.swing.ListModel)public void setModel(ListModel model)
This is a JavaBeans bound property.
model - the ListModel that provides the
                                                list of items for display
IllegalArgumentException - if model is 
                                                nullgetModel(), 
clearSelection()public void setListData(Object[] listData)
ListModel from an array of objects,
 and calls setModel with this model.
 
 Attempts to pass a null value to this method results in
 undefined behavior and, most likely, exceptions. The created model
 references the given array directly. Attempts to modify the array
 after invoking this method results in undefined behavior.
listData - an array of Objects containing the items to
        display in the listsetModel(javax.swing.ListModel)public void setListData(Vector<?> listData)
ListModel from a Vector
 and calls setModel with this model.
 
 Attempts to pass a null value to this method results in
 undefined behavior and, most likely, exceptions. The created model
 references the given Vector directly. Attempts to modify the
 Vector after invoking this method results in undefined behavior.
listData - a Vector containing the items to
                                                display in the listsetModel(javax.swing.ListModel)protected ListSelectionModel createSelectionModel()
DefaultListSelectionModel; called
 during construction to initialize the list's selection model
 property.
DefaultListSelecitonModel, used to initialize
         the list's selection model property during constructionsetSelectionModel(javax.swing.ListSelectionModel), 
DefaultListSelectionModelpublic ListSelectionModel getSelectionModel()
ListSelectionModel that maintains the
         list's selectionssetSelectionModel(javax.swing.ListSelectionModel), 
ListSelectionModel
protected void fireSelectionValueChanged(int firstIndex,
                                         int lastIndex,
                                         boolean isAdjusting)
ListSelectionListeners added directly to the list
 of selection changes made to the selection model. JList
 listens for changes made to the selection in the selection model,
 and forwards notification to listeners added to the list directly,
 by calling this method.
 
 This method constructs a ListSelectionEvent with this list
 as the source, and the specified arguments, and sends it to the
 registered ListSelectionListeners.
firstIndex - the first index in the range, <= lastIndexlastIndex - the last index in the range, >= firstIndexisAdjusting - whether or not this is one in a series of
        multiple events, where changes are still being madeaddListSelectionListener(javax.swing.event.ListSelectionListener), 
removeListSelectionListener(javax.swing.event.ListSelectionListener), 
ListSelectionEvent, 
EventListenerListpublic void addListSelectionListener(ListSelectionListener listener)
JList takes care of listening for selection state
 changes in the selection model, and notifies the given listener of
 each change. ListSelectionEvents sent to the listener have a
 source property set to this list.
listener - the ListSelectionListener to addgetSelectionModel(), 
getListSelectionListeners()public void removeListSelectionListener(ListSelectionListener listener)
listener - the ListSelectionListener to removeaddListSelectionListener(javax.swing.event.ListSelectionListener), 
getSelectionModel()public ListSelectionListener[] getListSelectionListeners()
ListSelectionListeners added
 to this JList by way of addListSelectionListener.
ListSelectionListeners on this list, or
         an empty array if no listeners have been addedaddListSelectionListener(javax.swing.event.ListSelectionListener)public void setSelectionModel(ListSelectionModel selectionModel)
selectionModel for the list to a
 non-null ListSelectionModel
 implementation. The selection model handles the task of making single
 selections, selections of contiguous ranges, and non-contiguous
 selections.
 This is a JavaBeans bound property.
selectionModel - the ListSelectionModel that
                                implements the selections
IllegalArgumentException - if selectionModel
                                                is nullgetSelectionModel()public void setSelectionMode(int selectionMode)
The following list describes the accepted selection modes:
ListSelectionModel.SINGLE_SELECTION -
   Only one list index can be selected at a time. In this mode,
   setSelectionInterval and addSelectionInterval are
   equivalent, both replacing the current selection with the index
   represented by the second argument (the "lead").
 ListSelectionModel.SINGLE_INTERVAL_SELECTION -
   Only one contiguous interval can be selected at a time.
   In this mode, addSelectionInterval behaves like
   setSelectionInterval (replacing the current selection},
   unless the given interval is immediately adjacent to or overlaps
   the existing selection, and can be used to grow the selection.
 ListSelectionModel.MULTIPLE_INTERVAL_SELECTION -
   In this mode, there's no restriction on what can be selected.
   This mode is the default.
 
selectionMode - the selection mode
IllegalArgumentException - if the selection mode isn't
         one of those allowedgetSelectionMode()public int getSelectionMode()
setSelectionMode(int)public int getAnchorSelectionIndex()
ListSelectionModel.getAnchorSelectionIndex()public int getLeadSelectionIndex()
ListSelectionModel.getLeadSelectionIndex()public int getMinSelectionIndex()
-1 if the selection
 is empty. This is a cover method that delegates to the method of the same
 name on the list's selection model.
-1ListSelectionModel.getMinSelectionIndex()public int getMaxSelectionIndex()
-1 if the selection
 is empty. This is a cover method that delegates to the method of the same
 name on the list's selection model.
ListSelectionModel.getMaxSelectionIndex()public boolean isSelectedIndex(int index)
true if the specified index is selected,
 else false. This is a cover method that delegates to the method
 of the same name on the list's selection model.
index - index to be queried for selection state
true if the specified index is selected,
         else falseListSelectionModel.isSelectedIndex(int), 
setSelectedIndex(int)public boolean isSelectionEmpty()
true if nothing is selected, else false.
 This is a cover method that delegates to the method of the same
 name on the list's selection model.
true if nothing is selected, else falseListSelectionModel.isSelectionEmpty(), 
clearSelection()public void clearSelection()
isSelectionEmpty
 will return true. This is a cover method that delegates to the
 method of the same name on the list's selection model.
ListSelectionModel.clearSelection(), 
isSelectionEmpty()
public void setSelectionInterval(int anchor,
                                 int lead)
anchor and lead
 indices are included. anchor doesn't have to be less than or
 equal to lead. This is a cover method that delegates to the
 method of the same name on the list's selection model.
 
 Refer to the documentation of the selection model class being used
 for details on how values less than 0 are handled.
anchor - the first index to selectlead - the last index to selectListSelectionModel.setSelectionInterval(int, int), 
DefaultListSelectionModel.setSelectionInterval(int, int), 
createSelectionModel(), 
addSelectionInterval(int, int), 
removeSelectionInterval(int, int)
public void addSelectionInterval(int anchor,
                                 int lead)
anchor and lead indices are
 included. anchor doesn't have to be less than or
 equal to lead. This is a cover method that delegates to the
 method of the same name on the list's selection model.
 
 Refer to the documentation of the selection model class being used
 for details on how values less than 0 are handled.
anchor - the first index to add to the selectionlead - the last index to add to the selectionListSelectionModel.addSelectionInterval(int, int), 
DefaultListSelectionModel.addSelectionInterval(int, int), 
createSelectionModel(), 
setSelectionInterval(int, int), 
removeSelectionInterval(int, int)
public void removeSelectionInterval(int index0,
                                    int index1)
index0 and index1
 indices are removed. index0 doesn't have to be less than or
 equal to index1. This is a cover method that delegates to the
 method of the same name on the list's selection model.
 
 Refer to the documentation of the selection model class being used
 for details on how values less than 0 are handled.
index0 - the first index to remove from the selectionindex1 - the last index to remove from the selectionListSelectionModel.removeSelectionInterval(int, int), 
DefaultListSelectionModel.removeSelectionInterval(int, int), 
createSelectionModel(), 
setSelectionInterval(int, int), 
addSelectionInterval(int, int)public void setValueIsAdjusting(boolean b)
valueIsAdjusting property. When
 true, upcoming changes to selection should be considered part
 of a single change. This property is used internally and developers
 typically need not call this method. For example, when the model is being
 updated in response to a user drag, the value of the property is set
 to true when the drag is initiated and set to false
 when the drag is finished. This allows listeners to update only
 when a change has been finalized, rather than handling all of the
 intermediate values.
 You may want to use this directly if making a series of changes that should be considered part of a single change.
 This is a cover method that delegates to the method of the same name on
 the list's selection model. See the documentation for
 ListSelectionModel.setValueIsAdjusting(boolean) for
 more details.
b - the new value for the propertyListSelectionModel.setValueIsAdjusting(boolean), 
ListSelectionEvent.getValueIsAdjusting(), 
getValueIsAdjusting()public boolean getValueIsAdjusting()
isAdjusting property.
 This is a cover method that delegates to the method of the same name on the list's selection model.
isAdjusting property.setValueIsAdjusting(boolean), 
ListSelectionModel.getValueIsAdjusting()public int[] getSelectedIndices()
removeSelectionInterval(int, int), 
addListSelectionListener(javax.swing.event.ListSelectionListener)public void setSelectedIndex(int index)
setSelectionInterval on the selection model. Refer to the
 documentation for the selection model class being used for details on
 how values less than 0 are handled.
index - the index of the cell to selectListSelectionModel.setSelectionInterval(int, int), 
isSelectedIndex(int), 
addListSelectionListener(javax.swing.event.ListSelectionListener)public void setSelectedIndices(int[] indices)
addSelectionInterval on the selection model to add the indices.
 Refer to the documentation of the selection model class being used for
 details on how values less than 0 are handled.
indices - an array of the indices of the cells to select,
                non-null
NullPointerException - if the given array is nullListSelectionModel.addSelectionInterval(int, int), 
isSelectedIndex(int), 
addListSelectionListener(javax.swing.event.ListSelectionListener)public Object[] getSelectedValues()
isSelectedIndex(int), 
getModel(), 
addListSelectionListener(javax.swing.event.ListSelectionListener)public int getSelectedIndex()
-1 if there is
 no selection.
 
 This method is a cover that delegates to getMinSelectionIndex.
getMinSelectionIndex(), 
addListSelectionListener(javax.swing.event.ListSelectionListener)public Object getSelectedValue()
null if there is no selection.
 
 This is a convenience method that simply returns the model value for
 getMinSelectionIndex.
getMinSelectionIndex(), 
getModel(), 
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void setSelectedValue(Object anObject,
                             boolean shouldScroll)
anObject - the object to selectshouldScroll - true if the list should scroll to display
                      the selected object, if one exists; otherwise falsepublic Dimension getPreferredScrollableViewportSize()
visibleRowCount
 rows. The value returned by this method depends on the layout
 orientation:
 
 VERTICAL:
 
 This is trivial if both fixedCellWidth and fixedCellHeight
 have been set (either explicitly or by specifying a prototype cell value).
 The width is simply the fixedCellWidth plus the list's horizontal
 insets. The height is the fixedCellHeight multiplied by the
 visibleRowCount, plus the list's vertical insets.
 
 If either fixedCellWidth or fixedCellHeight haven't been
 specified, heuristics are used. If the model is empty, the width is
 the fixedCellWidth, if greater than 0, or a hard-coded
 value of 256. The height is the fixedCellHeight multiplied
 by visibleRowCount, if fixedCellHeight is greater than
 0, otherwise it is a hard-coded value of 16 multiplied by
 visibleRowCount.
 
 If the model isn't empty, the width is the preferred size's width,
 typically the width of the widest list element. The height is the
 fixedCellHeight multiplied by the visibleRowCount,
 plus the list's vertical insets.
 
 VERTICAL_WRAP or HORIZONTAL_WRAP:
 
 This method simply returns the value from getPreferredSize.
 The list's ListUI is expected to override getPreferredSize
 to return an appropriate value.
getPreferredScrollableViewportSize in interface ScrollablevisibleRowCount rowsgetPreferredScrollableViewportSize(), 
setPrototypeCellValue(java.lang.Object)
public int getScrollableUnitIncrement(Rectangle visibleRect,
                                      int orientation,
                                      int direction)
 For horizontal scrolling, if the layout orientation is VERTICAL,
 then the list's font size is returned (or 1 if the font is
 null).
getScrollableUnitIncrement in interface ScrollablevisibleRect - the view area visible within the viewportorientation - SwingConstants.HORIZONTAL or
                    SwingConstants.VERTICALdirection - less or equal to zero to scroll up/back,
                  greater than zero for down/forward
IllegalArgumentException - if visibleRect is null, or
         orientation isn't one of SwingConstants.VERTICAL or
         SwingConstants.HORIZONTALgetScrollableBlockIncrement(java.awt.Rectangle, int, int), 
Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)
public int getScrollableBlockIncrement(Rectangle visibleRect,
                                       int orientation,
                                       int direction)
For vertical scrolling, the following rules are used:
visibleRect.height if the list is empty
 
 For horizontal scrolling, when the layout orientation is either
 VERTICAL_WRAP or HORIZONTAL_WRAP:
 
visibleRect.width if the list is empty
 
 For horizontal scrolling and VERTICAL orientation,
 returns visibleRect.width.
 
 Note that the value of visibleRect must be the equal to 
 this.getVisibleRect().
getScrollableBlockIncrement in interface ScrollablevisibleRect - the view area visible within the viewportorientation - SwingConstants.HORIZONTAL or
                    SwingConstants.VERTICALdirection - less or equal to zero to scroll up/back,
                  greater than zero for down/forward
IllegalArgumentException - if visibleRect is null, or
         orientation isn't one of SwingConstants.VERTICAL or
         SwingConstants.HORIZONTALgetScrollableUnitIncrement(java.awt.Rectangle, int, int), 
Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)public boolean getScrollableTracksViewportWidth()
true if this JList is displayed in a 
 JViewport and the viewport is wider than the list's
 preferred width, or if the layout orientation is HORIZONTAL_WRAP
 and visibleRowCount <= 0; otherwise returns false.
 
 If false, then don't track the viewport's width. This allows
 horizontal scrolling if the JViewport is itself embedded in a
 JScrollPane.
getScrollableTracksViewportWidth in interface ScrollableScrollable.getScrollableTracksViewportWidth()public boolean getScrollableTracksViewportHeight()
true if this JList is displayed in a 
 JViewport and the viewport is taller than the list's
 preferred height, or if the layout orientation is VERTICAL_WRAP
 and visibleRowCount <= 0; otherwise returns false.
 
 If false, then don't track the viewport's height. This allows
 vertical scrolling if the JViewport is itself embedded in a
 JScrollPane.
getScrollableTracksViewportHeight in interface ScrollableScrollable.getScrollableTracksViewportHeight()protected String paramString()
String representation of this JList.
 This method is intended to be used only for debugging purposes,
 and the content and format of the returned String may vary
 between implementations. The returned String may be empty,
 but may not be null.
paramString in class JComponentString representation of this JList.public AccessibleContext getAccessibleContext()
AccessibleContext associated with this JList.
 For JList, the AccessibleContext takes the form of an 
 AccessibleJList.
 
 A new AccessibleJList instance is created if necessary.
getAccessibleContext in interface AccessiblegetAccessibleContext in class JComponentAccessibleJList that serves as the 
         AccessibleContext of this JList| 
 | Java™ Platform Standard Ed. 6 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.