Java - Cambiar color de celda en JTable

 
Vista:

Cambiar color de celda en JTable

Publicado por Elena (4 intervenciones) el 02/01/2007 18:47:57
Hola, mi duda es la siguiente: he conseguido que al pasar un determinado tiempo, una columna de mi tabla sea no editable, sin embargo, quiero que del mismo modo, el color del texto de dicha columna represente que está desactivado (por ejemplo color gris), y eso no soy capaz de hacerlo. He probado con setDefaultRenderer( ), pero no he sido capaz.
¿Alguna idea?

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Cambiar color de celda en JTable

Publicado por Yamil Bracho (2316 intervenciones) el 02/01/2007 20:15:03
Estas en el camino correcto pero no muestras el codigo que usaste para crear el Renderer para la celda. Por ejemplo el siguiente codigo hace el efecto "pijama", es decir, una fila de un color y otra blanca ...

class ColoredTableCellRenderer
extends DefaultTableCellRenderer
{
public Component getTableCellRendererComponent
(JTable table, Object value, boolean selected, boolean focused, int row, int column)
{
setEnabled(table == null || table.isEnabled()); // see question above

if ((row % 2) == 0)
setBackground(Color.green);
else
setBackground(null);

super.getTableCellRendererComponent(table, value, selected, focused, row, column);

return this;
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cambiar color de celda en JTable

Publicado por Elena (1 intervención) el 02/01/2007 21:04:15
Estoy totalmente perdida, porque he probado el ejemplo que has puesto tal cual y tampoco funciona, de hecho, pongo un println dentro del método getTableCellRendererComponent (...) y no lo muestra, ¿puede estar el error en cómo creo la instancia y se la asigno a la tabla? (CellRenderer es el mismo código que el de arriba)

table = new JTable(tableModel);
CellRenderer custom = new CellRenderer();
table.setDefaultRenderer(String.class, custom);

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Cambiar color de celda en JTable

Publicado por Yamil Bracho (2316 intervenciones) el 03/01/2007 16:00:56
El CellRenderer solo se aplica a un TableColumn y no al JTable. Por ejemplo si se lo quieres aplicar a la primer columna

TableColumn col = table.getColumnModel().getColumn(0);
col.setCellRenderer(new MyTableCellRenderer());
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

RE:Cambiar color de celda en JTable

Publicado por PloTwist (1 intervención) el 18/11/2021 22:09:13
Han pasado tantos años, pero que sepas que esta respuesta me ayudo mucho, no encontraba la manera de enlazar un jtable que usaba el defaultTableModel con el renderer, tu repuesta tan corta es la unica que me sirvio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar