Mudar a cor de todas as linhas de uma coluna (jTable)

Ola mestre do java!

Eu fico muito irritado quando travo nessas coisas que eu acredito ser muito facil, pesquisei bastante na internet mas nao consegui entender um exemplo que se encaixe no meu problema, vejam meu codigo:

Aqui o Model da minha jTable:

public final class model extends AbstractTableModel {

private ArrayList linhas = null;
private String[] colunas = null;



public model(ArrayList linhas, String[] colunas) {
    setLinhas(linhas);
    setColunas(colunas);
}

public ArrayList getLinhas() {
    return linhas;
}

public void setLinhas(ArrayList linhas) {
    this.linhas = linhas;
}

public String[] getColunas() {
    return colunas;
}

public void setColunas(String[] colunas) {
    this.colunas = colunas;
}

@Override
public String getColumnName(int numCol) {
    return colunas[numCol];
}

@Override
public int getRowCount() {
    return linhas.size();
}

@Override
public int getColumnCount() {
    return colunas.length;
}

@Override
public Object getValueAt(int numLin, int numCol) {
    Object[] linha = (Object[]) getLinhas().get(numLin);
    return linha[numCol];
}

Aqui onde eu preencho esse jTable:

public void preencherOrcamentos(String Modelo) throws SQLException {
    ArrayList dados = new ArrayList();
    String[] colunas = new String[]{"ID", "Aparelho", "Modelo", "Peça", "Serviço", "A COBRAR"};


    try {
        conn = getConnection();
    } catch (SQLException | ClassNotFoundException e) {
        JOptionPane.showMessageDialog(null, "Não foi possivel conectar, reinicie o Banco de Dados\n\nERRO: "+e+"", "ERRO", JOptionPane.ERROR_MESSAGE);
    }


    PreparedStatement create = conn.prepareStatement("SELECT * from tb_orcamento where orc_aparelho = ?");
    create.setString(1, Modelo);
    rs = create.executeQuery();

    rs.first();

    do {
        BigDecimal peca = rs.getBigDecimal("orc_peca");
        BigDecimal valor = rs.getBigDecimal("orc_valor");
        BigDecimal resultado = valor.subtract(peca);
        dados.add(new Object[]{rs.getInt("orc_id"), rs.getString("orc_aparelho"), rs.getString("orc_modelo"), rs.getBigDecimal("orc_peca"), rs.getBigDecimal("orc_valor"), resultado});
    } while (rs.next());


    model modelo = new model(dados, colunas);
    j_Principal.jtable_orcamentos.setModel(modelo);

    // ID
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(0).setMaxWidth(0);
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(0).setMinWidth(0);
    j_Principal.jtable_orcamentos.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(0);
    j_Principal.jtable_orcamentos.getTableHeader().getColumnModel().getColumn(0).setMinWidth(0);


    //Aparelho
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(1).setPreferredWidth(80);
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(1).setResizable(false);
    
    //Modelo
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(2).setPreferredWidth(150);
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(2).setResizable(false);
    
    //Peca
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(3).setPreferredWidth(60);
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(3).setResizable(false);
    
    //Valor Servico
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(4).setPreferredWidth(60);
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(4).setResizable(false);
    
    //Total
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(5).setPreferredWidth(75);
    j_Principal.jtable_orcamentos.getColumnModel().getColumn(5).setResizable(false);

    //Ordem do table
    j_Principal.jtable_orcamentos.getTableHeader().setReorderingAllowed(false);
    //Tamanho automatico
    j_Principal.jtable_orcamentos.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    //Seleção Singular
    j_Principal.jtable_orcamentos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    j_Principal.jtable_orcamentos.setRowHeight(20);
}

e aqui o jTable:

Eu gostaria de colorir todos os valores da coluna “A Cobrar” mas nao achei nenhum exemplo na internet que eu pudesse entender, aprender e adaptar no meu código, ja agradeco desde agora <3 .

Pesquise por TableCellRenderer, é o que se usa pra mudar a aparência das células.

1 curtida

Não precisa se irritar, sempre vai ter algo que vc vai acabar travando.

1 curtida

Obrigado rapazeada, me ajudaram bastante <3