Java 删除jtable中的单元格边框

Java 删除jtable中的单元格边框,java,swing,jtable,border,borderless,Java,Swing,Jtable,Border,Borderless,我在自定义单元格渲染器上设置了边框,希望删除单元格边框。 我怎么做?我试着下订单,但没用 以下是我的渲染器代码: public class MyTableCellRenderer extends DefaultTableCellRenderer { private static final long serialVersionUID = -1195682136616306875L; public Component getTableCellRendererComponent(

我在自定义单元格渲染器上设置了边框,希望删除单元格边框。
我怎么做?我试着下订单,但没用

以下是我的渲染器代码:

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;
    }
}

我不知道您的代码是如何编译的,因为只有Swing组件可以有边框,并且组件类没有setOrder()方法

当我覆盖默认渲染器时,我会使用如下内容:

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;
    }
}

单元格之间绘制的线不是单元格本身的一部分。他们是由桌子画的。您可以使用以下选项对整个表禁用它们:

table.setShowGrid(false);
要仅禁用水平线或垂直线,请执行以下操作:

table.setShowHorizontalLines(false);
table.setShowVerticalLines(false);
或者,您可以使用以下方法更改线条的颜色:

table.setGridColor(color)

我可以设置除emptyBorder之外的所有类型的边框。当您使用emptyBorder时,您希望看到什么?你怎么知道它不起作用。这对我来说很好,文本靠左边缘,而不是因为默认边框而缩进1个像素well@WimDeblauwe谢谢我错过了one@Devon_C_Miller如果我只想删除1个单元格周围的边框,该怎么办?@Nikhil处理网格渲染的javax.swing.plaf.basic.BasicTableUI将其作为私有方法实现,因此没有简单的方法覆盖它。我没有尝试过这些,但可以考虑一些可能性: