gpt4 book ai didi

java - JTable 或 JXTable 中的列分隔符

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:54 24 4
gpt4 key购买 nike

我有一个 JTable(或更准确地说是 JXTable),其中包含 3 个我想划分的分组列部分。我曾经有 3 个表,我以编程方式链接它们(滚动条位置、排序、选择)。我用了很多代码来获得这个链接,我想摆脱它。现在我正在切换到 1 个 JXTable,因为在这个表类中有一些更好的东西。

对于几乎相同的问题,我找到了一些(不太令人满意的)解决方案。也许有人对我有好的建议。

选项 1:一个空列作为分隔符(另一种颜色,如灰色),并在使用箭头或 Tab 键时以编程方式跳过这个空列。

选项 2:将 1 列的 1 边的边距设置为更大的尺寸,因此它看起来像一个分隔线。直到现在我才知道如何设置所有列的边距

选项 3:再次回到 3 个单独的表格(特别是让表格以相同的方式排序需要大量工作,因为我不想重复单独部分中的列)。这意味着我必须重写我的表排序器,在不可见的列上排序。

欢迎提出任何建议(即使不是给定的三个选项中的任何一个)

最佳答案

我通过覆盖第 3 列上的单元格渲染器以具有较粗的右边框而没有其他边框,制作了一些看起来有点像您想要的东西。您可以在表列标题中执行相同的操作,使边框向上延伸。它显然将边框放在单元格内,但这对您来说可能就足够了。

  {
....
table.getColumnModel().getColumn(2).setCellRenderer(
new ThickRightBorderCellRenderer());
....
}

private static class ThickRightBorderCellRenderer
extends DefaultTableCellRenderer {

@Override
public Border getBorder() {
return BorderFactory.createMatteBorder(0, 0, 0, 3, Color.BLACK);
}
}

Example

关于java - JTable 或 JXTable 中的列分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8712694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com