Cor da linha da JTable

1 resposta
L

Olá pessoal, estou querendo mudar a cor da linha de uma tabela. Já implementei um DefaultTableCellRenderer e fiz com que a tabela fique zebrada, funcionou perfeito.

O problema é que eu quero mudar a cor de uma linha de depois que a linha já está adicionada na tabela, quero mudar pra vermelho se o usuário apertar delete na linha, mais não exclui-lá da tabela.

Alguém pode me ajudar?

Obrigado!

1 Resposta

tkx
Como vc disse, sobrescreveu o cellrenderer e fez ficar zebrada! Eu criei uma classe pra sobrescrever!
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.table.DefaultTableCellRenderer;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Wacem
 */
public class CellRenderer extends DefaultTableCellRenderer {

    public CellRenderer(int resultados[], Color cor[], int colunaAnalisada) {
        super();
        }
    }

    @Override
    public Component getTableCellRendererComponent(javax.swing.JTable table,
            Object value, boolean isSelected, boolean hasFocus, int row, int column){

        JLabel label = (JLabel)super.getTableCellRendererComponent(
                table, value, isSelected, hasFocus, row, column);
    //aqui colocar os condicionais que pintam a tabela
//repetir o zebrado e pintar de vermelho

    return label;
    }
dae no código, vc add um keylistner na tabela e aciona o código:
void renderiza(){
        for(int i = 9; i >= 0; i--){
            TableColumnModel model = tabelaSorteio.getColumnModel();
            model.getColumn(i).setCellRenderer(new CellRenderer());
            tabela.setColumnModel(model);
        }
    }

Observe que o cell renderer analisa coluna a coluna, e não linha a linha...
Sendo assim, guarde em um array as linhas que foram "deletadas", e use este array como argumento para vc pintar a tabela!

Criado 16 de março de 2010
Ultima resposta 16 de mar. de 2010
Respostas 1
Participantes 2