adsadilson tudo bom amigo? estou querendo fazer que apenas mude de cor uma coluna do jtable. o codigo que eu estou utilizando para colorir é esse
/**
*
* @author Romulo
*/
public class FormatacaoConteudo extends DefaultTableCellRenderer implements TableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
Receber receber = ((ReceberCredTableModel)table.getModel()).getReceber(row);
Calculos calc = new Calculos();
int atraso = calc.calcularDiasvencidos(receber.getVenci().toString());
if (atraso>0){
//se esta vencido pinta de vermelho
setBackground(new Color(255,102,102));
}
if (atraso<0){
//se nao esta vencido pinta de verde
setBackground(new Color(153,255,153));
}
if (atraso==0){
// pinta de amarelo
setBackground(new Color(255,255,153));
}
return this;
}
e aplico ao Jtable dessa forma.
TableCellRenderer tcr = new FormatacaoConteudo();
// Pinta apenas a coluna 4
TableColumn column = jTable4.getColumnModel().getColumn(4);
column.setCellRenderer(tcr);
sendo que eu queria já colocar isso dentro do CellRender
public class ReceberCellRenderes extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable jtable, Object valor, boolean isSelected,
boolean hasFocus, int row, int col) {
super.getTableCellRendererComponent(jtable, valor, isSelected, hasFocus, row, col);
Receber receber = (Receber) ((ReceberCredTableModel)jtable.getModel()).getReceber(row);
// ??????????????? como pintar apenas a coluna que eu quero ??????????????
Calculos calc = new Calculos();
int atraso = calc.calcularDiasvencidos(receber.getVenci().toString());
if (atraso>0){
//se esta vencido pinta de vermelho
setBackground(new Color(255,102,102));
}
if (atraso<0){
//se nao esta vencido pinta de verde
setBackground(new Color(153,255,153));
}
if (atraso==0){
// pinta de amarelo
setBackground(new Color(255,255,153));
}
//=====================================
if (isSelected) {
setBackground(Color.BLACK); //Amarelo
setForeground(Color.WHITE);
} else {
setForeground(Color.BLACK);
}
//Alinhamento dos dados
switch (col) {
case 2:
case 3:
case 6:
setHorizontalAlignment(CENTER);
break;
case 0:
case 4:
case 5:
case 7:
setHorizontalAlignment(RIGHT);
break;
default:
setHorizontalAlignment(LEFT);
break;
}
//---------------------------------------------------------------------
//Largura das colunas
jtable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
jtable.getColumnModel().getColumn(0).setPreferredWidth(20); //checkbox
jtable.getColumnModel().getColumn(1).setPreferredWidth(180); //documento
jtable.getColumnModel().getColumn(2).setPreferredWidth(70); //valor
jtable.getColumnModel().getColumn(3).setPreferredWidth(80); //lancamento
jtable.getColumnModel().getColumn(4).setPreferredWidth(40); //lancamento
jtable.getColumnModel().getColumn(5).setPreferredWidth(80); //lancamento
//-----------------------------------------------------------------------------
//Ocultas as linhas da grade
//jtable.setShowGrid(false);
// Alinhamento dos títulos da coluna
DefaultTableCellRenderer vHeaderRenderer = (DefaultTableCellRenderer) jtable.getTableHeader().getDefaultRenderer();
vHeaderRenderer.setHorizontalAlignment(SwingUtilities.CENTER);
return this;
}
Obrigado!