изменить цвет строки jtable

#java #colors #row #cell

#java #Цвет #строка #ячейка

Вопрос:

Я использую этот код в jtable, настраиваю код при создании пользовательских настроек, но моя выбранная строка не изменилась, пожалуйста, помогите мне решить эту проблему

     jtablexml = new javax.swing.JTable(){
public Component prepareRenderer ( TableCellRenderer renderer, int row, int column ){
    Component component = super.prepareRenderer(renderer,row,column);
    Object value = getModel().getValueAt(row,column);
    if(value.equals(null)){
        component.setBackground(Color.RED);
        component.setForeground(Color.BLACK);        }
    else{
        component.setBackground(Color.WHITE);
        component.setForeground(Color.BLACK);        }
        jtablexml.setSelectionBackground(Color.GREEN);
    return component;    }
 

};

Комментарии:

1. Вы не можете вызвать метод для нулевого объекта. Для проверки на null вы используете: if (value == null)

Ответ №1:

но моя выбранная строка не изменилась

Ваша логика переопределяет выбор строки по умолчанию.

Вам нужна дополнительная проверка, чтобы убедиться, что строка не выделена по умолчанию:

 Component component = super.prepareRenderer(renderer,row,column);

if (!isRowSelected(row))
{
    // add custom highlighting here
}

return component; 
 

Другие примеры рендеринга строк см. в разделе Рендеринг строк таблицы.

Кроме того, не пытайтесь изменить свойство таблицы в средстве визуализации.

Комментарии:

1. почему я говорю, что не работает, и я вижу эту проблему ** if(value.equals(null)){component.setForeground(Color.red);} ** java.lang.NullPointerException