Alinhamento de Colunas no JTable

5 respostas
E

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)”?

5 Respostas

G

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+

M

E como fazer pra definir, por exemplo:

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

D
// 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.

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

// refaz o layout
doLayout();

Falow!

A

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

O

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???

Criado 22 de junho de 2006
Ultima resposta 13 de dez. de 2010
Respostas 5
Participantes 6