分层列单元格上的JXTreeTable和BorderHighlighter渲染问题

时间:2012-09-06 16:27:31

标签: swing swingx jxtreetable

我正在构建一个JXTreeTable,其中隐藏根目录下只有两个级别,所以我想要一个分隔顶级节点的边框。但是,当我使用BorderHighlighter时,它没有正确绘制分层列。

只需将鼠标移到桌面上,就会不断将边框添加到分层单元格,直到最终整个列都变黑。

我使用来自多个站点的JXTableTree示例代码构建了一个小示例,包括[InformIT],我将代码复制/粘贴到构建中。2

我刚刚将荧光笔代码添加到示例中的main()方法中。

Highlighter topHighlighter = new BorderHighlighter(new HighlightPredicate() {
    @Override
    public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
        return true;
    }
}, BorderFactory.createMatteBorder(1, 0, 0, 0, Color.BLACK));
treeTable.addHighlighter(topHighlighter);

我尝试过我认为最新的SwingX,version 1.6.4

1 个答案:

答案 0 :(得分:0)

最终更新

修订版#4239的issue is fixed,因此将在下一版本中提供(或查看当前代码库)

<强>原始

这是一个错误(不确定我们是否已经有问题),如果它与SwingLabs demo application中的效果相同:

  • 在左侧的任务中选择荧光笔演示
  • 在右侧的演示中选择JXTreeTable选项卡
  • 在荧光笔组合中选择BorderHighlighter
  • 在谓词组合中选择Always On

根本原因是通过显示一棵树的剪切区域来渲染分层列。因此,荧光笔作为一个整体应用于树上,有些 - 就像边界一样 - 具有令人讨厌的效果。

目前,唯一的出路是不使用这样的荧光笔。不完全确定,是否有/可能是一个令人满意的解决方案。

<强>更新

提起issue in the SwingX tracker,所以我们不要忘记。