我有一组包含一些有趣数据的行。我需要指出用户。
1 即可。所以我可以保存行号并在荧光笔的帮助下突出显示它们。但是当我展开/折叠树时,行号会改变,突出显示会将这些行转移到另一行,不感兴趣;
的 2 即可。我可以使用多个选择来选择所有这些行,然后阻止选择(拦截选择事件)以使选择无法重置。但是防止选择是个坏主意..;
3 即可。为了解决第一变体的问题,可以尝试跟踪扩展/折叠项目的数量。但是在这种情况下,当我们折叠多层扩展子树时,我被阻止了。我不知道如何找到真正删除的行数;
的 4 即可。我不想遍历所有树并检查数据值。
我需要以某种方式实现用于选择的相同机制:我们折叠/展开行但选择是固定的。但我不知道该怎么做。
答案 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));