Ajuda Pintar linhas duma tabela

0 respostas
J
Boas eu quero pintar as linhas duma tabela conforme um campo delas, tenho o código para isso e funciona mas uma das colunas fica por pintar. O meu código está aqui:
private void pintarTabela() {
        
        int nrlinhas = dados.getRowCount();
        for(int i = 0; i<nrlinhas; i++){
            int coluna = 0;
            while(coluna<10){
                String estado = dados.getValueAt(i, 8).toString();
                if(estado.equalsIgnoreCase("reparado")){
                    renderer.colorirCelula(i, coluna, Color.green);
                    coluna++;
                }
                else{
                    if(estado.equalsIgnoreCase("pendente")){
                        renderer.colorirCelula(i, coluna, Color.yellow);
                        coluna++;
                    }
                    else{
                        renderer.colorirCelula(i, coluna, Color.red);
                        coluna++;
                    }
                }
            }
            
        }
    }
private PintarLinhasTabela renderer = new PintarLinhasTabela();

e a classe PintarLinhasTabela:

import java.awt.Color;  
import java.awt.Component;  
import java.awt.Point;  
import java.util.HashMap;  
import java.util.Map;  
import java.util.Random;  
import java.util.Vector;  
  
import javax.swing.JFrame;  
import javax.swing.JScrollPane;  
import javax.swing.JTable;  
import javax.swing.table.DefaultTableCellRenderer;  
import javax.swing.table.DefaultTableModel;  
  
public class PintarLinhasTabela extends DefaultTableCellRenderer {  
  
    private Map _cores = new HashMap();  
  
    private Point _tempCel = new Point(0, 0);  
  
    private Color _defaultBG;  
  
    public PintarLinhasTabela() {  
        this._defaultBG = getBackground();  
    }  
  
    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,  
        boolean hasFocus, int row, int column) {  
  
        Component c = super.getTableCellRendererComponent(  
            table,  
            value,  
            isSelected,  
            hasFocus,  
            row,  
            column);  
  
        this._tempCel.x = row;  
        this._tempCel.y = column;  
        if (this._cores.containsKey(this._tempCel)) {  
            c.setBackground((Color) this._cores.get(this._tempCel));  
        } else {  
            c.setBackground(this._defaultBG);  
        }  
  
        return c;  
    }  
  
    public void colorirCelula(int row, int col, Color cor) {  
        this._cores.put(new Point(row, col), cor);  
    }  
      
}

podem me ajudar?
tentei correr o debug e não deu erro nenhum mas a 6ª coluna não pinta, fica branca

Criado 28 de maio de 2013
Respostas 0
Participantes 1