jxtable-如何更新荧光笔对表进行排序



我有一个带有自定义表模型的jxtable。我添加了2张Colorhighlighter,并带有自定义精彩片段。

问题是,当我单击列标题时,表格对行排序,但是荧光笔仍然是旧视图。

对表格进行排序后如何更新亮点的状态?

正如@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;
        }
    };

并用过@mkorbel的想法:

是:

    int rowIndex = adapter.row;

现在是:

    int rowIndex = adapter.convertRowIndexToModel(adapter.row);

现在起作用。

StantableModel 是我的自定义表模型。它具有 getrow()函数并返回 stantablerow 对象又具有 isspakowany() function。

最新更新