Попробуйте следующее:
table.getTableHeader().setPreferredSize(
new Dimension(table.getColumnModel().getTotalColumnWidth(), 32));
Это изменит размер заголовка:
Для центрирования текста вы можете использовать тег <center>
:
headers[2] = "<html><center>Long Centered<br>Header";
EDIT
Выравнивание устанавливается вашим LookAndFeel. WindowsTableHeaderUI
например, явно вызывает
setHorizontalAlignment(LEADING);
Самый простой способ решить эту проблему:
(JLabel)table.getTableHeader().getDefaultRenderer())
.setHorizontalAlignment(SwingConstants.CENTER);
Обратите внимание, что это изменение теряется при последующем изменении LookAndFeel.