Alinhamento de Colunas no JTable

Ola,

Para formatar uma coluna de uma JTable alinhada a direita ou centralizada, a unica forma é definir um TableModel personalizado e calcular o tamanho do conteudo dentro do tamanho da coluna, para posiciona-lo em determinado local?

Nao existe nada do tipo “setColumnAlign(CENTER)” ou “setColumnAlign(RIGHT)”?

Você pode fazer da seguinte forma:
Suponha que você tenha uma JTable com as colunas:
Descricao, Data Vcto e Valor(R$).

DefaultTableCellRenderer esquerda = new DefaultTableCellRenderer();
DefaultTableCellRenderer centralizado = new DefaultTableCellRenderer();
DefaultTableCellRenderer direita = new DefaultTableCellRenderer();

esquerda.setHorizontalAlignment(SwingConstants.LEFT);
centralizado.setHorizontalAlignment(SwingConstants.CENTER);
direita.setHorizontalAlignment(SwingConstants.RIGHT);

tabela.getColumnModel().getColumn(0).setCellRenderer(esquerda);
tabela.getColumnModel().getColumn(1).setCellRenderer(centralizado);
tabela.getColumnModel().getColumn(2).setCellRenderer(direita);

t+

6 curtidas

E como fazer pra definir, por exemplo:

Coluna de Cod ter 30 Pixels de largura
Descricao ter 100
e valor 50

// mudar tamanho da coluna tabela.getColumn().setPreferredWidth( tamanhoAki ) ;

Preste atenção ao modo de auto-redimensionamento q vc está usando nas suas colunas, pois em alguns o tamanho não será aplicado.

[code]
// seta o modo de auto-redimensionamento como desligado
tabela.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );

// refaz o layout
doLayout();[/code]

Falow!

Cara, isso me ajudou bastante… valeu!!!
Abraços,
Almir.

Mas e se no caso eu quiser q a linha 0 da coluna 1 seja centralizada no cetro, e as demais linhas sejam centralizadas a esquerda… comoposso fazer???