有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JXTreeTable:保留一组高亮显示的行

我有一组行和一些有趣的数据。我需要向用户指出它们

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

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


共 (1) 个答案

  1. # 1 楼答案

    正如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));