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 |