Foros del Web » Programación para mayores de 30 ;) » Java »

Cambiar color texto en Jtable

Estas en el tema de Cambiar color texto en Jtable en el foro de Java en Foros del Web. Hola buenos días, tengo una dudilla a ver si alguien sabe cómo se hace. Tengo un JTable y ahi voy metiendo clientes que estan en ...
  #1 (permalink)  
Antiguo 05/05/2012, 03:47
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
Cambiar color texto en Jtable

Hola buenos días, tengo una dudilla a ver si alguien sabe cómo se hace.

Tengo un JTable y ahi voy metiendo clientes que estan en una BD. Si el estado es activo lo pongo en la tabla en color azul y si esta inactivo lo muestro como color rojo.

Lo hago asi:

Código PHP:
while (rs.next()){


   if(
rs.getString("ESTADO").equals("ACTIVO")){

      
tabla1.setforeground(Color.blue);

   }
   else 
tabla1.setforeground(Color.red);





Lo que pasa es que me cambia el color de toda la tabla :( y se queda del color del ultimo foreground que estableci.

Como se puede hacer para cada fila del color que corresponda?

He buscado información pero no he encontrado nada

http://www.forosdelweb.com/f45/color...jtable-859818/

http://www.forosdelweb.com/f45/color...jtable-804111/

http://www.forosdelweb.com/f45/cambi...jtable-739815/

Un saludo y gracias.
__________________
Aprendiendo un poco de Java :D
  #2 (permalink)  
Antiguo 05/05/2012, 03:52
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Cambiar color texto en Jtable

Hola:

http://chuwiki.chuidiang.org/index.p..._de_las_celdas

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 05/05/2012, 04:06
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
Respuesta: Cambiar color texto en Jtable

Buenas, justamente lo estaba probando ahora, pero me cambia el color solo en la celda, si quiero que la fila entera donde este la palabra "ACTIVO" se ponga entera verde cómo lo debería de poner?

Gracias,
__________________
Aprendiendo un poco de Java :D
  #4 (permalink)  
Antiguo 05/05/2012, 05:16
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
Respuesta: Cambiar color texto en Jtable

Tengo hecho lo siguiente:

Cita:
public class FormatoTablaUsuarios 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 (String.valueOf(table.getValueAt(row, column)).equals("ADMIN")) {
setBackground(Color.green);
}
else
setBackground(null);

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

return this;
}
}

Pero solo me pone de color verde la celda ADMIN. Si hago un bucle for no me funciona... Realmente no sé lo que estoy haciendo porque no entiendo si pongo if (row==2) y coloreo en verde me colorea toda la fila.



EDITO: Vale, es que estoy más empanado que nada, me pongo a mirar cosas por ahi y a probar todo y no me paro a leer lo que pongo...

(row,5).equals("ADMIN")

Un saludo
__________________
Aprendiendo un poco de Java :D

Última edición por caruizj; 05/05/2012 a las 05:58
  #5 (permalink)  
Antiguo 05/05/2012, 13:02
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 12 años, 4 meses
Puntos: 34
Respuesta: Cambiar color texto en Jtable

No estoy seguro de donde esta exactamente tu error, pero aqui te dejo un CellRenderer ya probado:
Código:
table.setDefaultRenderer(Object.class, new MyCellRenderer());
Código:
public class MyCellRenderer extends DefaultTableCellRenderer {

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        boolean valid = String.valueOf(table.getValueAt(row, 5)).equals("ADMIN");
        component.setBackground(valid ? Color.green : Color.red);
        return component;
    }
}
  #6 (permalink)  
Antiguo 05/05/2012, 13:27
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
Respuesta: Cambiar color texto en Jtable

Muchas gracias ya me ha funcionado, te debo una ;)
__________________
Aprendiendo un poco de Java :D

Etiquetas: color, jtable, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:12.