我试图将JTable显示为网格,并在单元格之间插入线条。我只能在单个单元格中添加边框,但这看起来从来都不正确;如果我添加完整的边框,我会得到一堆断开的盒子,看起来很丑陋和错误。使用MatteBorders(如下面的代码)看起来好一点,但会导致边界线不相符的空白。
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component stamp = super.prepareRenderer(renderer, row, column);
int top = 1;
int left = 1;
int bottom = row == 7 ? 1 : 0; //Grid is always 8x8, this ensures the bottom/right will have full borders.
int right = column == 7 ? 1 : 0;
MatteBorder border = new MatteBorder(top, left, bottom, right, Color.BLACK);
if (stamp instanceof JComponent) {
((JComponent) stamp).setBorder(border);
}
return stamp;
}
我觉得必须有一些方法可以正确地做到这一点,所以我只是在单元格元素之间获得网格线。我错过了什么?如果没有别的,有没有办法让MatteBorder在间隙中拉伸,或者稍微推出一个正常的边框,以便相邻单元格的边框重叠?
编辑:使用setShowGrid(true)和setGridColor(Color.BLACK)。
答案 0 :(得分:2)
使用JTable.setShowGrid(true)
显示默认边框或使用setShowHorizontalLines(boolean showHorizontalLines)
或setShowVerticalLines(boolean showVerticalLines)
仅显示水平线或垂直线