如何更改每个第二行的背景颜色?

Kla*_*sos 1 java swing jtable background-color tablecellrenderer

我尝试更改每个第二行的背景颜色.问题是只有第一个COLUMN受到影响.为什么?

    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;
        }
    });
Run Code Online (Sandbox Code Playgroud)

cam*_*ckr 5

使用渲染器方法,您需要为表中的每种数据类型编写自定义渲染器.因此,如果您有String,Data,Integer,Boolean,则需要编写4个自定义渲染器.

有关一种方法,请参阅表行渲染,无论表中包含多种数据类型,都可以编写代码.这种方法覆盖preparerrenderer(...)了JTable 的方法.