删除jtable中的单元格边框

har*_*hit 21 java swing border jtable borderless

我有自定义单元格渲染器,并希望删除单元格的边框.
我该怎么做?我试过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;
    }
}
Run Code Online (Sandbox Code Playgroud)

Dev*_*ler 52

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

table.setShowGrid(false);
Run Code Online (Sandbox Code Playgroud)

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

table.setShowHorizontalLines(false);
table.setShowVerticalLines(false);
Run Code Online (Sandbox Code Playgroud)

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

table.setGridColor(color)
Run Code Online (Sandbox Code Playgroud)

  • 你也可以同时使用 [setShowGrid()](http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#setShowGrid(boolean)) (2认同)