删除jtable中的单元格边框

我有自定义单元格渲染器,并希望删除单元格的边框。
我该怎么做? 我试过setBorder但它不起作用。

这是我的渲染器代码:

public class MyTableCellRenderer extends DefaultTableCellRenderer { private static final long serialVersionUID = -1195682136616306875L; public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (!isSelected) { if (row % 2 == 0 && row != 1) { c.setBackground(new Color(255, 255, 150)); } else { c.setBackground(Color.WHITE); } } else { c.setBackground(new Color(255, 230, 255)); } c.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); return c; } } 

细胞之间绘制的线不是细胞本身的一部分。 他们被桌子绘制。 您可以使用以下命令关闭整个表格:

 table.setShowGrid(false); 

要仅禁用水平线或仅禁用垂直线:

 table.setShowHorizontalLines(false); table.setShowVerticalLines(false); 

或者,您可以使用以下方法更改线条的颜色:

 table.setGridColor(color) 

我不知道你的代码是如何编译的,因为只有Swing组件可以有一个Border而Component类没有setBorder()方法。

当我覆盖默认渲染器时,我使用类似于:

 Class CustomRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); this.setBorder (BorderFactory.createBevelBorder (EtchedBorder.RAISED)); return this; } }