Java JXTable-如何在对表进行排序时更新Highlighter

Java JXTable-如何在对表进行排序时更新Highlighter,java,swing,swingx,jxtable,tablerowsorter,Java,Swing,Swingx,Jxtable,Tablerowsorter,我有一个带有自定义表格模型的JXTable。我添加了2个彩色荧光灯和定制荧光灯 问题是,当我单击列标题时,表会对行进行排序,但高亮显示的行仍然与旧视图相同 如何在对表排序后更新高亮显示的状态?正如@kleopatra提到的,我查看了我的谓词: HighlightPredicate spakowany = new HighlightPredicate() { @Override public boolean isHighlighted(Component r

我有一个带有自定义表格模型的JXTable。我添加了2个彩色荧光灯和定制荧光灯

问题是,当我单击列标题时,表会对行进行排序,但高亮显示的行仍然与旧视图相同


如何在对表排序后更新高亮显示的状态?

正如@kleopatra提到的,我查看了我的谓词:

    HighlightPredicate spakowany = new HighlightPredicate() {
        @Override
        public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
            TableModel tableModel = table.getModel();
            if (tableModel instanceof StanTableModel) {
                StanTableModel stanTableModel = (StanTableModel) tableModel;
                // int rowIndex = adapter.row;  <-  this was the issue 
                int rowIndex = adapter.convertRowIndexToModel(adapter.row);
                StanTableRow myCustomRow = stanTableModel.getRow(rowIndex);
                if ((myCustomRow.isSpakowany()) {
                    return true;
                }
            }
            return false;
        }
    };
现在是:

    int rowIndex = adapter.convertRowIndexToModel(adapter.row);
现在它可以工作了


StanTableModel是我的自定义表格模型。它有getRow函数并返回一个StanTableRow对象,该对象又有isSpakowany函数。

将视图索引转换为模型int modelRow=convertRowIndexToModelrow,可能有效,可能不取决于SwingX版本,还有一些其他问题,最好是发布一个短、可运行、可编译的,对于潜在的回答者和未来读者,谢谢你,我将在今天晚些时候添加一个简单的例子。显示你用来控制高亮的谓词你发现问题:-考虑用正确的工作行来改变代码片段,这是一个转换的ROWEXECK,否则就有点混乱了。@kleopatra有没有其他方法,也就是说HighlightPredicate和getTableModel,不能是脆弱的???
    int rowIndex = adapter.convertRowIndexToModel(adapter.row);