В двух словах, у меня есть JTable, заполненный шестнадцатеричными данными. Таблица остается на экране, пока происходит некоторая фоновая обработка.Изменение цветов 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?
- Как применить это без взаимодействия пользователя со столом. Многие пользовательские элементы рендеринга, которые я могу найти, это когда пользователь выбирает ячейку, но в этом случае никакие ячейки не выбираются вручную. Я предполагаю, что это может быть случай запуска какого-то события.
Если кто-нибудь может предложить какие-либо советы или замечания, я был бы очень признателен.
Чтобы лучше помочь, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http://www.sscce.org/) (Short , Self Contained, Правильный пример). –