Есть много способов, которыми вы «можете» увеличить высоту заголовка, который вы выберете, будет зависеть от того, чего вы хотите достичь.Однако следует помнить одну вещь: пытаться найти решение, которое учитывает различные среды рендеринга, в которых может потребоваться ваша программа.
Вы можете ...
Простая смена шрифтаразмер.Это может звучать глупо, но вы будете удивлены, насколько все просто, например ...
DefaultTableModel model = new DefaultTableModel(10, 10);
JTable table = new JTable(model);
JTableHeader header = table.getTableHeader();
header.setFont(header.getFont().deriveFont(30f));
![Font size](https://i.stack.imgur.com/uXEiU.png)
Вы можете...
Воспользуйтесь встроенной поддержкой Swing HTML.В этом примере настраивается таблица HTML с определенной высотой ячейки
DefaultTableModel model = new DefaultTableModel(10, 10);
JTable table = new JTable(model);
TableColumnModel columnModel = table.getColumnModel();
String prefix = "<html><body><table><tr><td height=100>";
String sufix = "</td></tr></table></body><html>";
for (int col = 0; col < columnModel.getColumnCount(); col++) {
TableColumn column = columnModel.getColumn(col);
String text = prefix + Character.toString((char)('A' + col)) + sufix;
System.out.println(text);
column.setHeaderValue(text);
}
![Html](https://i.stack.imgur.com/SbtsO.png)
Вы можете ...
Просто укажите свойсобственный TableCellRenderer
в качестве средства визуализации ячейки по умолчанию для заголовка таблицы.Это немного сложно, так как трудно имитировать рендерер по умолчанию, используемый текущим внешним видом, а UIManager
не помогает.Вместо этого вам следует рассмотреть возможность использования «прокси» подхода, при котором вместо этого вы применяете необходимые изменения к существующему средству визуализации заголовков.
DefaultTableModel model = new DefaultTableModel(10, 10);
JTable table = new JTable(model);
JTableHeader header = table.getTableHeader();
TableCellRenderer proxy = header.getDefaultRenderer();
header.setDefaultRenderer(new TableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component comp = proxy.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (comp instanceof JLabel) {
JLabel label = (JLabel) comp;
label.setBorder(new CompoundBorder(label.getBorder(), new EmptyBorder(50, 0, 50, 0)));
}
return comp;
}
});
![Renderer](https://i.stack.imgur.com/mmMyA.png)
Что касается решений, то это, пожалуй, мое предпочтение, так как учитывает больше переменных, участвующих в определении предпочтительного размера самого заголовка столбца