Динамически окрашивающий ряд jTable

В ответе на мой предыдущий вопрос, Раскраска строки jTable, но теперь я не уверен, что новый вопрос здесь, настройка цвета для строки работает. Но я хочу получить его из цикла for, это значит, что я хочу установить цвет для i-го ряда. Я даю то, что я использовал,

for(int i=0;i<serialNumber;i++){
  if((jTable1.getValueAt(i,1).toString()).equals(BidNumber)){
   Enumeration<TableColumn> en = jTable1.getColumnModel().getColumns();
    while (en.hasMoreElements()) {
        TableColumn tc = en.nextElement();

        tc.setCellRenderer(new MyTableCellRenderer());
    }
}

Это вызовет метод cellrenderer,

public class MyTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer {

        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            setBackground(null);
            super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

              boolean interestingRow = row ==1;



            if (interestingRow) {
                setBackground(Color.YELLOW);
            }

            return this;
        }

    }

здесь я пытаюсь поставить цвет для строки, когда значение первого столбца равно BidNumber, но в cellrenderer(здесь) он устанавливается как строка ==1, тогда каждый раз, когда условие истинно, 1-я строка будет окрашена..Как я могу установить его для i-го ряда?

1 ответ

+ Изменить boolean interestingRow = row ==1 чтобы удовлетворить ваши требования, где row == n даст желаемый результат. Вы должны определить n каким-то значимым образом

Это может происходить из табличной модели данных или предоставляться другими средствами

Другие вопросы по тегам