【问题标题】:Coloring some rows in JXTable为 JXTable 中的某些行着色
【发布时间】:2015-04-26 02:24:28
【问题描述】:

我在对列进行排序后为某些行着色时遇到了问题。 我想为第 4 列等于零的每一行着色。所以我已经覆盖了这样的 prepareRenderer() 方法:

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 行颜色为红色)

但在对某些列进行排序后,此行索引不会改变。(第 1、第 2 和第 15 行再次变红) 如何解决?

【问题讨论】:

    标签: java swing jxtable


    【解决方案1】:
    double d = (double) getModel().getValueAt(row, 4);
    

    模型中的数据从不排序,所以需要使用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多