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

[SOLUCIONADO] Problema para cargarle color a fila de jTable si cumple una condicion Java

Estas en el tema de Problema para cargarle color a fila de jTable si cumple una condicion Java en el foro de Java en Foros del Web. Buenas.. quiero que si una celda específica cumple una condición, me cambie el color de la fila... Logro que me cambie el color de la ...
  #1 (permalink)  
Antiguo 29/12/2014, 14:37
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 2 meses
Puntos: 175
Problema para cargarle color a fila de jTable si cumple una condicion Java

Buenas.. quiero que si una celda específica cumple una condición, me cambie el color de la fila...

Logro que me cambie el color de la celda en específico, pero no de la fila entera.. alguien me puede orientar...

el code va así:

Código Java:
Ver original
  1. //AL INICIO DE MI CLASE
  2. public static final DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer();
  3.  
  4. // cambiar color de filas y celdas
  5.     private DefaultTableCellRenderer colorCelda() {
  6.  
  7.             @Override
  8.             public Component getTableCellRendererComponent(JTable table, Object value,
  9.                     boolean isSelected, boolean hasFocus, int row, int column) {
  10.  
  11.                 super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
  12.                 setBackground(Color.WHITE);
  13.                 setForeground(Color.BLACK);
  14. /* OTRA VARIANTE PARA EL IF ES HACER
  15. if (String.valueOf(table.getValueAt(row, column)).equals("0")) {
  16.                     setBackground(Color.black);
  17.                     setForeground(Color.white);
  18.                 }
  19. AUNQUE ES PEOR YA QUE ME SELECCIONA TODAS LAS CELDAS QUE CONTENGAN EL NUMERO CERO
  20. */
  21.                 if (column == 8) {
  22.                     String valor = value.toString();
  23.                     switch (valor) {
  24.                         case "0":
  25.                             setBackground(Color.BLUE);
  26.                             setForeground(Color.WHITE);
  27.                             break;
  28.                     }
  29.                 }
  30.  
  31.                 return this;
  32.             }
  33.         };
  34.  
  35.         return dtcr;
  36.     }
  37.  
  38. //LO APLICO
  39. this.vista.getTbprestamodetalles().setDefaultRenderer(Object.class, colorCelda());

Cambia solo el color de la celda.. necesito colorear toda su fila... :(
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Última edición por loncho_rojas; 29/12/2014 a las 15:03
  #2 (permalink)  
Antiguo 30/12/2014, 11:51
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 2 meses
Puntos: 175
Respuesta: Problema para cargarle color a fila de jTable si cumple una condicion Java

Bueno, lo resolvi a mi manera...

es identico al anterior pero cambie las formulaciones de las condiciones...

Código Java:
Ver original
  1. private DefaultTableCellRenderer formatoTablaDetallesPrestamo() {
  2.  
  3.             @Override
  4.             public Component getTableCellRendererComponent(JTable table, Object value,
  5.                     boolean isSelected, boolean hasFocus, int row, int column) {
  6.  
  7.                 //intercalo colores blancos y gris claro entre las filas pares e impares
  8.                 if (row % 2 == 0) {
  9.                     setBackground(Color.WHITE);
  10.                     setForeground(Color.decode("#000000"));
  11.                 } else {
  12.                     setBackground(Color.decode("#f2f2f2"));
  13.                     setForeground(Color.decode("#000000"));
  14.  
  15.                 }
  16.  
  17.                 //cuando se selecciona, lo marco con un color azul propio del swing a las filas
  18.                 if (isSelected) {
  19.                     setBackground(Color.decode("#39698a"));
  20.                     setForeground(Color.decode("#FFFFFF"));
  21.                 }
  22.  
  23.                 /* obtengo el valor de la columna 8 en una variable, ya que es la que me importa
  24.                 y es con la cual voy a comparar otras columnas*/
  25.                 String valor = table.getValueAt(row, 8).toString();
  26.                
  27.                 //pregunto si el valor de la 8va (7) columna es null
  28.                 if (table.getValueAt(row, 7) == null) {
  29.  
  30.                     //pregunto si la 9na (8) columna tiene un valor cero
  31.                     if (Integer.parseInt(valor) == 0) {
  32.  
  33.                         //la pinto de amarillo
  34.                         setBackground(new Color(255, 250, 205));
  35.                         setForeground(Color.decode("#000000"));
  36.                     }
  37.  
  38.                     /*pregunto si la 9na. (8) columna tiene un valor menor a cero, es decir, si es negativo
  39.                     siempre y cuendo la 8va (7) columna sea nula*/
  40.                     if (Integer.parseInt(valor) < 0) {
  41.                         //la pinto de verde
  42.                         setBackground(new Color(255, 192, 203));
  43.                         setForeground(Color.decode("#000000"));
  44.                     }
  45.                 }//fin si la columna 8 (o sea la numero 7 en orden de array) es NULA
  46.  
  47.                 //simplemente pregunto si la 9na (8) columna es negativa sin importar o depender de otra
  48.                 if (Integer.parseInt(valor) < 0) {
  49.                     setBackground(new Color(152, 251, 152));
  50.                     setForeground(Color.decode("#000000"));
  51.                 }
  52.                
  53.                 //pregunto si el valor de la 8va (7) columna NO ES NULA
  54.                 if (table.getValueAt(row, 7) != null) {
  55.                     //verifico si el valor de la 9na. (8) columna es cero
  56.                     if (Integer.parseInt(valor) == 0) {
  57.                         //la pinto de rojo claro con letras negras
  58.                         setBackground(new Color(152, 251, 152));
  59.                         setForeground(Color.decode("#000000"));
  60.                     }
  61.                 }
  62.  
  63.                 super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
  64.                 return this;
  65.             }
  66.  
  67.         };
  68.  
  69.         return dtcr;
  70.     }

Gracias por sus ayudas ...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Etiquetas: clase, color, cumple, fila, jtable, string, valor
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 20:56.