1

我正在构建一个 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版本 1.6.4

4

1 回答 1

0

最终更新

问题自修订版 #4239 起已修复,因此将在下一个版本中可用(或查看当前代码库)

原来的

这是一个错误(不确定我们是否已经有问题),如果它与SwingLabs 演示应用程序中看到的效果相同:

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

根本原因是分层列是通过显示一棵树的裁剪区域来呈现的。因此,荧光笔作为一个整体应用在树上,有些——比如边框——具有令人讨厌的效果。

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

更新

在 SwingX 跟踪器中提交了一个问题,所以我们不要忘记。

于 2012-09-08T06:10:21.990 回答