我有一个JTable(或更精确的JXTable),我想分割3个分组列。 我曾经有3个表,我编程链接(滚动条位置,排序,选择)。我使用了很多代码来实现这个链接,我想摆脱这个。 现在我正在切换到1 JXTable,因为在这个表类中有一些更好的东西。
我发现一些(不太令人满意的)解决方案几乎同样的问题。 也许有人对我有好的建议。
选项1:空列作为分隔符(另一种颜色,如灰色),并在使用箭头或制表键时以编程方式跳过此空列。
选项2:将1列1侧的边距设置为更大的尺寸,因此它看起来像一个分隔线。直到现在我才发现如何设置所有列的边距
选项3:再次返回3个单独的表(特别是以相同的方式对表进行排序是很多工作,因为我不想在单独的部分重复这些列)。这意味着我必须重写我的表格分类器,在不可见的列上进行排序。
任何建议都是受欢迎的(如果它不是三个给定的选项)
答案 0 :(得分:4)
我通过覆盖第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);
}
}