Search code examples
javaswingjtabletablecellrenderer

JTable Column Headers with wrapped and center aligned text


I am currently trying to wrap and align center text of a column header. The problem seems to be that while the first line of column header is aligned, the second one does not get aligned properly.

I am using DefaultTableCellRenderer to render it as such:

public void centerAlign(JTable t, int numberOfColumns){
    centerRenderer.setHorizontalAlignment(SwingConstants.CENTER);
    for (int i = 0; i < numberOfColumns; i++){
         t.getColumnModel().getColumn(i).setCellRenderer(centerRenderer);
    }
    headerRender = (DefaulttableCellRenderer)
    t.getTableHeader().getDefaultRenderer();
    headerRenderer.setHorizontalAlignment(JLabel.CENTER);
}

Solution

  • In your table model class use html of column name

    example:

    "<html><center>First column</html>"