删除JTable中的内部垂直边框

时间:2014-01-31 16:36:43

标签: java swing jtable

我想删除JTable中的内部边框。 我研究了这个问题,发现我可以删除所有垂直边框 所以JTable看起来像:

---------------------            +-------+-------+-------+
(0,0)   (0,1)   (0,2)            | (0,0) | (0,1) | (0,2) |
---------------------            +-------+-------+-------+
(1,0)   (1,1)   (1,2) instead of | (1,0) | (1,1) | (1,2) |
---------------------            +-------+-------+-------+
(2,0)   (2,1)   (2,2)            | (2,0) | (2,1) | (2,2) |
---------------------            +-------+-------+-------+

然而,我想要的是:

+-----------------------+
| (0,0)   (0,1)   (0,2) |
+-----------------------+
| (1,0)   (1,1)   (1,2) |
+-----------------------+
| (2,0)   (2,1)   (2,2) |
+-----------------------+

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

一种解决方案是扩展BasicTableUI并覆盖paintGrid以修改网格的绘制方式。

答案 1 :(得分:0)

我想不出一个简洁的解决方法,不涉及覆盖一些内部paint()调用,这可能会变得混乱。所以这是一个不太优雅的解决方案:禁用垂直线,然后添加适当颜色的线条边框。

table.setShowVerticalLines(false);
Color lineColor = new Color(122, 138, 153); //(122, 138, 153) is the RGB color of the lines, at least in my computer/OS/L&F...
table.setBorder(BorderFactory.createLineBorder(lineColor));

结果:

enter image description here