【发布时间】:2014-04-13 15:20:40
【问题描述】:
我尝试更改每一行的背景颜色。问题是只有第一列受到影响。为什么?
table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer()
{
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
final Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
c.setBackground(row % 2 == 0 ? Color.LIGHT_GRAY : Color.WHITE);
return c;
}
});
【问题讨论】:
-
当您使用
final Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);创建c时,column的值是多少?也许您指向第一列的单元格并将背景设置为那个 -
您的表格列中有哪些数据类型?
-
您需要提供更多信息,关于如何创建表,即模型、渲染器、编辑器。
-
“如何改变每一行的背景颜色?” 使用 Nimbus PLAF(是一种方法)。
标签: java swing jtable background-color tablecellrenderer