2015-01-28 6 views
0

В двух словах, у меня есть 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); 

Я предполагаю, что есть два различных проблемы здесь:

  1. Как указать точный диапазон ячеек для применения пользовательского рендеринга, то есть строки 0, столбцов 0-7?
  2. Как применить это без взаимодействия пользователя со столом. Многие пользовательские элементы рендеринга, которые я могу найти, это когда пользователь выбирает ячейку, но в этом случае никакие ячейки не выбираются вручную. Я предполагаю, что это может быть случай запуска какого-то события.

Если кто-нибудь может предложить какие-либо советы или замечания, я был бы очень признателен.

+0

Чтобы лучше помочь, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http://www.sscce.org/) (Short , Self Contained, Правильный пример). –

ответ

3

Последними аргументами метода являются строки и столбцы. Чтобы получить требуемый результат, рендер должен учитывать эти значения.

Смежные вопросы