Salve galera.
Estou tentando criar um Renderer para minhas JTables mas nao sei o que esta acontecendo na hora de alinhar os valores das celulas.
aqui como estou tentando fazer.
public class JTableRenderer {
private DefaultTableCellRenderer renderer;
private JTable tabela;
public JTableRenderer(JTable tabela){
this.renderer = new DefaultTableCellRenderer();
this.tabela = tabela;
configuracaoGeral();
}
public void configuracaoGeral(){
tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
tabela.getTableHeader().setResizingAllowed(false);
tabela.getTableHeader().setReorderingAllowed(false);
JTableHeader cabecalho = tabela.getTableHeader();
cabecalho.setFont(new Font("Tahoma",Font.BOLD, 11));
}
public void tamanhoColuna(int col, int width){
tabela.getColumnModel().getColumn(col).setPreferredWidth(width);
}
public void alinharEsquerda(int col) {
renderer.setHorizontalAlignment(SwingConstants.LEFT);
tabela.getColumnModel().getColumn(col).setCellRenderer(renderer);
}
public void alinharCentro(int col) {
renderer.setHorizontalAlignment(SwingConstants.CENTER);
tabela.getColumnModel().getColumn(col).setCellRenderer(renderer);
}
public void alinharDireita(int col) {
renderer.setHorizontalAlignment(SwingConstants.RIGHT);
tabela.getColumnModel().getColumn(col).setCellRenderer(renderer);
}
}
O problema acontece nos metodos alinharEsquerda, alinharCentro e alinharDireita…
aqui como estou usando
public void entradas(){
List<Caixa> lista = new CaixaDAO().getEntradasCaixa();
EntradasCaixaTableModel ecTM = new EntradasCaixaTableModel(lista);
tabelaEntradas.setModel(ecTM);
JTableRenderer tr = new JTableRenderer(tabelaEntradas);
tr.tamanhoColuna(0, 60);//data
tr.tamanhoColuna(1, 50);//hora
tr.tamanhoColuna(2, 60);//tipo
tr.tamanhoColuna(3, 70);//id produto
tr.tamanhoColuna(4, 200);//descricao
tr.tamanhoColuna(5, 90);//valor un
tr.tamanhoColuna(6, 70);//qtd
tr.tamanhoColuna(7, 30);//unidade
tr.tamanhoColuna(8, 90);//total
tr.alinharDireita(3);
tr.alinharCentro(6);
}
Quando tento alinhar por exemplo a direita e depois no centro, todos os q mandei ficam no centro e naum um a direita e outro no centro, na maneira como estou tentando fazer por exemplo.
a coluna 3 deveria alinhar a direita
a coluna 6 deveria alinhar ao centro
Mas ao contrario disso apenas alinha no centro, e como se respeitasse apenas o ultimo metodo invocado. Nao sei pq isso acontece, como resolver isso ?
obrigado.