在您引用的代码中,您有一个自定义的CellRenderer.
将表单添加到表格后,您只需在适当的位置进行格式化:
class CustomRenderer extends DefaultTableCellRenderer
{
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
// Formatting here
return c;
}
}
DefaultTableCellRenderer只是在JTable中用于绘制单元格的组件.更确切地说,在这种情况下,组件是JLabel(您可以通过检查DefaultTableCellRenderer中的源来查看).
所以你应该做的所有格式都是在“c”对象上(或“this”,因为该方法实际上每次返回相同的组件:本身).例如,c.setBackground()将允许您设置背景颜色.
将为JPable的每个单元调用被覆盖的getTableCellRendererComponent()方法,并使用参数告知您上下文.您知道表,行,列,应该显示的值,还知道是否选择了单元格,这可能有助于您的情况:
if (selected)
c.setBackground(Color.YELLOW);
更进一步,请注意,因为您重写了DefaultTableCellRenderer类并使用了自己的方法,所以您已经完成了一些格式化操作,例如背景颜色,即表格中的颜色.因此,您只需在需要时定义自己的颜色.如果没有,你将不得不关注所有情况,因为由于使用相同的组件,你将以颜色集结束一次,然后应用于所有连续的单元格,因为没有做任何改变它.
我建议你阅读DefaultTableCellRenderer中的源代码(及其在JTable中的用法),如果你想了解更多关于它的完成和使用方式的信息.