JTable 右对齐标题
2022-09-01 09:10:50
基本上,我有一个JTable,其中包含带有右对齐单元格的列,但左对齐的标题看起来非常糟糕。我想在这些列的标题上右对齐,而不改变标题的“外观和感觉”。
谢谢
基本上,我有一个JTable,其中包含带有右对齐单元格的列,但左对齐的标题看起来非常糟糕。我想在这些列的标题上右对齐,而不改变标题的“外观和感觉”。
谢谢
下面是修改表的 JTableHeader
的替代方法。对于此用法,这并不是绝对必要的,但它可以最大程度地减少对 UI 委托外观的影响。TableCellRenderer
典型用法:
JTable table = new JTable(…);
JTableHeader header = table.getTableHeader();
header.setDefaultRenderer(new HeaderRenderer(table));
自定义标头呈现器:
private static class HeaderRenderer implements TableCellRenderer {
DefaultTableCellRenderer renderer;
public HeaderRenderer(JTable table) {
renderer = (DefaultTableCellRenderer)
table.getTableHeader().getDefaultRenderer();
renderer.setHorizontalAlignment(JLabel.CENTER);
}
@Override
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int col) {
return renderer.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, col);
}
}
试试这个:
((DefaultTableCellRenderer)table.getTableHeader().getDefaultRenderer())
.setHorizontalAlignment(JLabel.RIGHT);