Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/12/2014, 11:51
Avatar de loncho_rojas
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...