gpt4 book ai didi

java - JXTable - 如何更新对表进行排序的荧光笔

转载 作者:行者123 更新时间:2023-12-01 05:03:08 25 4
gpt4 key购买 nike

我有一个带有自定义表格模型的 JXTable。我添加了 2 个带有自定义 HighlightPredicate 的 ColorHighlighter。

问题是当我单击列标题时,表对行进行排序,但荧光笔仍保留旧 View 。

对表格进行排序后如何更新突出显示的状态?

最佳答案

正如 @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() 函数。

关于java - JXTable - 如何更新对表进行排序的荧光笔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13122792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com