JTable

3 respostas
D

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

3 Respostas

U
demys:
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;

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);

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

Boa Sorte

D

Valeu.

F

Eu fiz assim e deu certo:

DefaultTableCellRenderer vHeaderRenderer = (DefaultTableCellRenderer)table.getTableHeader().getDefaultRenderer();
vHeaderRenderer.setHorizontalAlignment(SwingUtilities.CENTER);
table.setHeaderRenderer(vHeaderRenderer, indiceDaColuna);
Criado 19 de agosto de 2006
Ultima resposta 29 de jul. de 2010
Respostas 3
Participantes 3