APIdia Launch Partner
Top Description Methods
javax.swing

public Interface ListCellRenderer<E>

Known Direct Implementers
javax.swing.plaf.basic.BasicComboBoxRenderer, javax.swing.plaf.synth.SynthComboBoxUI.SynthComboBoxRenderer, sun.swing.plaf.synth.SynthFileChooserUIImpl.DirectoryComboBoxRenderer, sun.swing.plaf.synth.SynthFileChooserUIImpl.FilterComboBoxRenderer, javax.swing.DefaultListCellRenderer
Type Parameters
<E>
the type of values this renderer can be used for
Imports
java.awt.Component

Identifies components that can be used as "rubber stamps" to paint the cells in a JList. For example, to use a JLabel as a ListCellRenderer, you would write something like this:
class MyCellRenderer extends JLabel implements ListCellRenderer<Object> {
    public MyCellRenderer() {
        setOpaque(true);
    }

    public Component getListCellRendererComponent(JList<?> list,
                                                  Object value,
                                                  int index,
                                                  boolean isSelected,
                                                  boolean cellHasFocus) {

        setText(value.toString());

        Color background;
        Color foreground;

        // check if this cell represents the current DnD drop location
        JList.DropLocation dropLocation = list.getDropLocation();
        if (dropLocation != null
                && !dropLocation.isInsert()
                && dropLocation.getIndex() == index) {

            background = Color.BLUE;
            foreground = Color.WHITE;

        // check if this cell is selected
        } else if (isSelected) {
            background = Color.RED;
            foreground = Color.WHITE;

        // unselected, and not the DnD drop location
        } else {
            background = Color.WHITE;
            foreground = Color.BLACK;
        };

        setBackground(background);
        setForeground(foreground);

        return this;
    }
}

Author
Hans Muller
Since
1.2
See Also
JList, DefaultListCellRenderer

Method Summary

Modifier and TypeMethod and Description
public Component

Returns:

A component whose paint() method will render the specified value.
getListCellRendererComponent
(JList<? extends E>
The JList we're painting.
list
,
E
The value returned by list.getModel().getElementAt(index).
value
,
int
The cells index.
index
,
boolean
True if the specified cell was selected.
isSelected
,
boolean
True if the specified cell has the focus.
cellHasFocus
)

Return a component that has been configured to display the specified value.

Method Detail

getListCellRendererComponentback to summary
public Component getListCellRendererComponent(JList<? extends E> list, E value, int index, boolean isSelected, boolean cellHasFocus)

Return a component that has been configured to display the specified value. That component's paint method is then called to "render" the cell. If it is necessary to compute the dimensions of a list because the list cells do not have a fixed size, this method is called to generate a component on which getPreferredSize can be invoked.

Parameters
list:JList<? extends E>

The JList we're painting.

value:E

The value returned by list.getModel().getElementAt(index).

index:int

The cells index.

isSelected:boolean

True if the specified cell was selected.

cellHasFocus:boolean

True if the specified cell has the focus.

Returns:Component

A component whose paint() method will render the specified value.

See Also
JList, ListSelectionModel, ListModel