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;
}
}
JList, DefaultListCellRenderer
| Modifier and Type | Method and Description |
|---|---|
| public Component | Returns: A component whose paint() method will render the specified value.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. |
| getListCellRendererComponent | back 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
| |