我想将JTable第一列的内容与中心对齐,但我无法让它工作。如果我在没有自定义渲染器的情况下设置它,那么我就可以使用它,但它会覆盖我正在尝试为行颜色进行的更改。
Eclipse告诉我,类型Component的方法setHorizontalAlignment未定义,但不会响铃。我缺少什么想法?
final TableCellRenderer renderer = table_1.getDefaultRenderer(Object.class);
table_1.setDefaultRenderer(Object.class, new TableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
Component c = renderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
c.setBackground(row % 4 == 2 || row % 4 == 3 ? new Color(230,230,230) : Color.WHITE);
c.setHorizontalAlignment(JLabel.CENTER);
return c;
}
});
答案 0 :(得分:1)
将变量c声明并转换为JLabel:
JLabel c = (JLabel) renderer.getTableCellRendererComponent(...);
DefaultTableCellRenderer的API将向您显示此类实际上源自JLabel,它具有您感兴趣的方法。