удалите границу ячеек в 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;
    }
}
21
задан almightyGOSU 11 June 2015 в 13:00
поделиться

2 ответа

Линии, проведенные между ячейками, не являются частью самих ячеек. Их рисует стол. Вы можете отключить их для всей таблицы с помощью:

table.setShowGrid(false);

Чтобы отключить только горизонтальные или только вертикальные линии:

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

Или вы можете изменить цвет линий с помощью:

table.setGridColor(color)
52
ответ дан 29 November 2019 в 06:51
поделиться

Я не знаю, как компилируется ваш код, поскольку только компоненты Swing могут иметь границу, а класс 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;
    }
}
2
ответ дан 29 November 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: