我正在构建一个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。
答案 0 :(得分:0)
最终更新
修订版#4239的issue is fixed,因此将在下一版本中提供(或查看当前代码库)
<强>原始强>
这是一个错误(不确定我们是否已经有问题),如果它与SwingLabs demo application中的效果相同:
根本原因是通过显示一棵树的剪切区域来渲染分层列。因此,荧光笔作为一个整体应用于树上,有些 - 就像边界一样 - 具有令人讨厌的效果。
目前,唯一的出路是不使用这样的荧光笔。不完全确定,是否有/可能是一个令人满意的解决方案。
<强>更新强>
提起issue in the SwingX tracker,所以我们不要忘记。