2015-04-25 5 views
2

У меня проблема с окрашиванием некоторых строк после использования столбцов. Я хочу раскрасить каждую строку, которая 4-го столбца равна нулю. Так что у меня есть переопределенный метод prepareRenderer() следующим образом:Окрашивание некоторых строк в JXTable

public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { 
    Component comp = super.prepareRenderer(renderer, row, column); 
    int modelRow = convertRowIndexToModel(row); 
    int modelColumn = convertColumnIndexToModel(column); 
    double d = (double) getModel().getValueAt(row, 4); 
    if(d <= 1e-4){ 
     comp.setForeground(Color.RED); 
    }else{ 
     comp.setForeground(Color.BLACK); 
    } 
    return comp; 
} 

он отлично работает. (1-й, 2-й и 15-й ряды цветных красный) enter image description here

Но после сортировки некоторых столбцов этой строки индексы не изменяют. (1-й, 2-й и 15-й ряды снова красные) enter image description here Как это исправить?

ответ

4
double d = (double) getModel().getValueAt(row, 4); 

Данные модели никогда не отсортированы так, что вам нужно использовать:

double d = (double) getModel().getValueAt(modelRow, 4); 

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

  • Нет связанных вопросов^_^