编程语言
首页 > 编程语言> > java – 在JTable中将颜色更改为未选定的行

java – 在JTable中将颜色更改为未选定的行

作者:互联网

我需要突出显示JTable中所选行的颜色.我正在使用我自己的CellRenderer,它可以工作,但当我选择另一行时,前一行仍然保持高亮显示.我们的想法是保持所选择的蓝色,并保持其他的原始颜色.在adittion我正在制作对列:灰色和非对:白色,所以这是CellRenderer的代码

private class Renderer extends DefaultTableCellRenderer
{
    private static final long serialVersionUID = 1L;
    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
                                         boolean isSelected, boolean hasFocus,
                                         int row, int column)
    {
        super.getTableCellRendererComponent(table, value, isSelected,
                                                          hasFocus, row, column);

        int columnIndex = table.getSelectedColumn();
        int rowIndex = table.getSelectedRow();

        if (columnIndex != -1 && rowIndex != -1){
            this.setBackground(Color.BLUE);
        } else {
            if (row % 2 == 0) this.setBackground(Color.decode("0xF9F9F9"));
            else this.setBackground(Color.decode("0xF1F1F1"));
        }
        return this;
    }
}

编辑:F1F1F1颜色接近白色,F9F9F9F9有点浅灰色

解决方法:

在从方法返回之前,您应该添加类似下面的代码:

if (!isSelected) {
  setBackground(...);
}

标签:java,colors,swing,jtable,cellrenderer
来源: https://codeday.me/bug/20190729/1571038.html