简而言之,我已经在JTable中填充了十六进制数据。该表保留在屏幕上,同时进行一些后台处理。
后台处理检查一些8个字节的值,例如,如果成功处理了前8个字节,则我需要表中的前8个单元格将其背景色更改为绿色。接下来的8个操作将继续进行,直到表格结束。
但我不知道如何实现这一目标。
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);
我猜这里有两个不同的问题:
如何指定要应用自定义渲染的确切单元格范围,即第0行,第0-7列?
如何在用户不与表进行交互的情况下应用此功能。我可以找到许多自定义渲染内容,这些都是针对用户选择单元格的情况,但是在这种情况下,没有手动选择任何单元格。我猜这可能是触发某种事件的情况。
如果有人可以提供任何建议或意见,我将不胜感激。
最佳答案
该方法的最后一个参数是行和列。为了获得所需的结果,渲染器必须考虑这些值。