Короче говоря, у меня есть 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?
- Как это применить без взаимодействия пользователя с таблицей. Я могу найти много пользовательских материалов для рендеринга, когда пользователь выбирает ячейку, но в этом случае ячейки не выбираются вручную. Я предполагаю, что это может быть случай запуска какого-то события.
Если кто-то может предложить какой-либо совет или вклад, я был бы очень признателен.