JTable

Como faço para alterar o alinhamento (LEFT,CENTER,RIGHT) dos titulos das colunas (ColumnHeader) do JTable?

Deve existir um jeito mais facil, mas eu faço assim:

// imports requeridos
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;

[code]TableCellRenderer AlignmentTableHeader = new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (table != null) {
JTableHeader header = table.getTableHeader();
if (header != null) {
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
}
setText((value == null) ? “” : value.toString());
setBorder(UIManager.getBorder(“TableHeader.cellBorder”));
setHorizontalAlignment(JLabel.LEFT);
setHorizontalTextPosition(JLabel.LEFT);
return this;
}
};

int coluna = 1;

minhaTabela.getTableHeader().getColumnModel().getColumn(coluna).setHeaderRenderer(AlignmentTableHeader);[/code]

No metodo setHorizontalAlignment() você escolhe a orientação que você quer.

Boa Sorte

Valeu.

Eu fiz assim e deu certo:

DefaultTableCellRenderer vHeaderRenderer = (DefaultTableCellRenderer)table.getTableHeader().getDefaultRenderer();
vHeaderRenderer.setHorizontalAlignment(SwingUtilities.CENTER);
table.setHeaderRenderer(vHeaderRenderer, indiceDaColuna);