我想将 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;
}
});
最佳答案
声明变量 c 并将其转换为 JLabel:
JLabel c = (JLabel) renderer.getTableCellRendererComponent(...);
DefaultTableCellRenderer 的 API将向您展示该类实际上派生自 JLabel,它具有您感兴趣的方法。
关于java - 自定义渲染器中单元格内容的 JTable 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20302254/