无需单击即可更改 JTable 单元格颜色

Change JTable cell colours without clicking

简而言之,我有一个用十六进制数据填充的 JTable。 table 保留在屏幕上,同时进行一些后台处理。

后台处理检查一些8字节的值,例如,如果前8字节处理成功,我需要table中的前8个单元格将它们的背景颜色更改为绿色。接下来的 8 次继续如此,直到 table.

结束

但我不知道如何实现。

public class MyCellRenderer extends javax.swing.table.DefaultTableCellRenderer {

    @Override
    public java.awt.Component getTableCellRendererComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        java.awt.Component cellComponent = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        System.out.println("Cell render test");
        cellComponent.setBackground(java.awt.Color.GREEN);
        return cellComponent;
    }
}

这是我发现的一些允许呈现单元格的代码,但它似乎只适用于整个列,使用:

.getColumnModel().getColumn(10).setCellRenderer(customRenderer);

我想这里有两个明显的问题:

  1. 如何指定要应用自定义渲染的确切单元格范围,即第 0 行,第 0-7 列?
  2. 如何在用户不与 table 交互的情况下应用它。我能找到的很多自定义渲染内容都是针对用户选择单元格时的,但在这种情况下,没有手动选择任何单元格。我猜这可能是触发某种事件的情况。

如果有人可以提供任何建议或意见,我将不胜感激。

该方法的最后一个参数是行和列。要获得所需的结果,渲染器必须考虑这些值。