Dre*_*ith 25 java user-interface swing jtable jtableheader
基本上,我有一个JTable包含具有右对齐单元格但左对齐标题的列,这看起来非常糟糕.我想右对齐这些列的标题而不改变标题的"外观和感觉".
谢谢
tra*_*god 43
这是修改TableCellRenderer
表格的另一种方法JTableHeader
.这种用法并不是绝对必要的,但它最大限度地减少了对UI代表外观的影响.
典型用法:
JTable table = new JTable(…);
JTableHeader header = table.getTableHeader();
header.setDefaultRenderer(new HeaderRenderer(table));
Run Code Online (Sandbox Code Playgroud)
自定义标题渲染器:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
Eng*_*uad 36
试试这个:
((DefaultTableCellRenderer)table.getTableHeader().getDefaultRenderer())
.setHorizontalAlignment(JLabel.RIGHT);
Run Code Online (Sandbox Code Playgroud)
DefaultTableCellRenderer renderer = (DefaultTableCellRenderer) your_jtable.getTableHeader().getDefaultRenderer();
renderer.setHorizontalAlignment(0);
Run Code Online (Sandbox Code Playgroud)
0
中心在哪里.