Interface ListCellRenderer<E>
- Type Parameters:
-
E- the type of values this renderer can be used for
- All Known Implementing Classes:
-
BasicComboBoxRenderer,BasicComboBoxRenderer.UIResource,DefaultListCellRenderer,DefaultListCellRenderer.UIResource,MetalFileChooserUI.FileRenderer,MetalFileChooserUI.FilterComboBoxRenderer
public interface ListCellRenderer<E>
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;
}
} - Since:
- 1.2
- See Also:
-
JList,DefaultListCellRenderer
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
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. |
Method Detail
getListCellRendererComponent
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- The JList we're painting. -
value- The value returned by list.getModel().getElementAt(index). -
index- The cells index. -
isSelected- True if the specified cell was selected. -
cellHasFocus- True if the specified cell has the focus. - Returns:
- A component whose paint() method will render the specified value.
- See Also:
-
JList,ListSelectionModel,ListModel