0

我有一组包含一些有趣数据的行。我需要将用户指向他们。

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

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

4

1 回答 1

0

本问题所述,在创建 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));
于 2015-07-22T12:01:06.527 回答