JXTreeTable:保留一组突出显示的行

时间:2015-07-15 10:09:35

标签: java highlighting jxtreetable

我有一组包含一些有趣数据的行。我需要指出用户。

1 即可。所以我可以保存行号并在荧光笔的帮助下突出显示它们。但是当我展开/折叠树时,行号会改变,突出显示会将这些行转移到另一行,不感兴趣;  的 2 即可。我可以使用多个选择来选择所有这些行,然后阻止选择(拦截选择事件)以使选择无法重置。但是防止选择是个坏主意..;   3 即可。为了解决第一变体的问题,可以尝试跟踪扩展/折叠项目的数量。但是在这种情况下,当我们折叠多层扩展子树时,我被阻止了。我不知道如何找到真正删除的行数;
 的 4 即可。我不想遍历所有树并检查数据值。

我需要以某种方式实现用于选择的相同机制:我们折叠/展开行但选择是固定的。但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

this question中所述,在创建HighlightPredicate时,无需关注行的索引。只需检查可能有趣的值即可。

final JXTreeTable treeTable = new JXTreeTable();
final int interestingColumn = 3;
final Color interestingCellBackgroundColor = Color.GREEN;
final Color interestingCellForegroundColor = Color.BLACK;
treeTable.addHighlighter(new ColorHighlighter(new HighlightPredicate() {
        public boolean isHighlighted(Component rend, ComponentAdapter adapt) {
            Object value = adapt.getValue(interestingColumn);
            return isValueInteresting(value));
        }
    }, interestingCellBackgroundColor, interestingCellForegroundColor));