2015-04-25 40 views
2

我在使用列之後着色一些行是有問題的。 我想着色第四列等於零的每一行。所以,我已經覆蓋了像這樣的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);