java - 如何更改每一行的背景颜色?

标签 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;
        }
    });

最佳答案

使用呈现器方法,您需要为表中的每种数据类型编写自定义呈现器。因此,如果您有字符串、数据、整数、 boolean 值,则需要编写 4 个自定义渲染器。

参见 Table Row Rendering对于一种方法,无论表中有多少数据类型,您都可以编写一次代码。这种方法覆盖了 JTable 的 preparerrenderer(...) 方法。

关于java - 如何更改每一行的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22301575/

相关文章:

javascript - Node.js/JavaScript - Java 的 Jackson 等价物

java - 如何将图像包含到可执行的 .jar 中?

Java:根据动态生成的文本字段名称更改变量?

java - 为 Java 集合实现 AbstractTableModel

java - 显示二维对象数组的字符串值

java - Spring Data JPA Select Distinct

java - 获取数组中的一些项目

java - Hibernate @Lob 注释不再起作用 : cannot exceed overall CLOB length with a few String?

java - 我可以在 Java Swing 应用程序中使用 Google Visualization API 吗?

java - 如何插入/删除列到 JTable java