La Web del Programador: Comunidad de Programadores
 
    Pregunta:  16321 - COMO PINTAR LAS CELAS DE UNA LISTA !!
Autor:  Jaime Casini
Hola amiguetes, a ver si podeis resolver mi duda. Tengo una lista de Strings y me gustaria pintar las celas de la lista de diferentes colores o en 2 colores para poder ver más facilmente las filas de la lista.

Muchas gracias.

  Respuesta:  Rafael Hernamperez Martin
Hola, compañero,

Para llevar a cabo esto deberas crear un ListCellRenderer, en donde podras utilizar cualquier componente Swing e implementar la interfaz ListCellRenderer. El siguiente muestra como hacerlo:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class MyCellRenderer extends JLabel implements ListCellRenderer {
public Component getListCellRendererComponent(
JList list,
Object value, // Valor a visualizar
int index, // celda
boolean isSelected, // la celda esta seleccionada?
boolean cellHasFocus) // la celda tiene el foco?
{
String s = value.toString();
setText(s);

if (index % 2 == 0) // Si es celda par
setForeground(new Color(150,150,255));
else
setForeground(new Color(0,0,255));

setEnabled(list.isEnabled());
setFont(list.getFont());
return this;
}
}

Para que se pueda activar tendras que utilizar el metodo setCellRenderer, de la siguiente manera:

jList1.setCellRenderer(new MyCellRenderer());

Un saludo