Набор цвет jtable, выполните следующие действия строки во время выполнения

Мой Java 8 апплет подключается к базе данных SQL и отображает результат "выбора" в с двумя столбцами:

Если в строке в строке 1/Колумна не такой же, как строки в строке 0/Колумна, я хочу дать ряд 1 серый цвет фона (чтобы отметить начало "новой" данных), в остальных строках должны использовать по умолчанию белый цвет.

Код для создания таблицы:

JTable myTable = new JTable();
myTable.setSelectionModel(new ToggleListSelectionModel()); //custom selection model
myTable.setModel(new DefaultTableModel(
    new Object[][] {
    },
    new String[] {
        "ColumnA", "ColumnB"
    }
));

Получения данных и заполнения таблицы:

Statement stat = connection.createStatement();
ResultSet rs = stat.executeQuery(someSelectStatement);
Object[] row = null;

while(rs.next()) {  
    int columns = rs.getMetaData().getColumnCount();    
    row = new Object[columns];

    for (int i=1; i<=columns; i++) {
        row[i - 1] = rs.getObject(i);
    }

    //TODO: Set color of row according to data in "ColumnA" of previous row
    ((DefaultTableModel) myTable.getModel()).insertRow(rs.getRow()-1,row); //Add new row with the ResultSet's content
    //Get String data of ColumnA for this specific row with e.g. "(String) row[0]"
}

rs.close();
stat.close();

Из того, что я нашел до сих пор, я должен использовать пользовательский параметр TableModel вместо Я поставил в начале, но как им пользоваться? Все, что я нашел использует фиксированные чеки, например

if content in the cell is 'buy', set the background color to 'green'

(например, здесь или здесь), но в моем случае я ничего не знаю о содержании, когда таблица создается, потому что он заполнен/строки добавляются во время выполнения.

Я также нашел этот ответ, но автор вопроса читает данные, то изменения в модель и лишь затем заполняет таблицу, в то время как мне заполнить таблицу по строкам (непосредственно после прочтения строки контента).

Мой вопрос: я знаю, как сравнить содержимое ячейки на содержимое ячейки в предыдущей строке, но как я могу задать цвет фона строки во время выполнения?

Редактировать:

Вот прмо код для заполнения таблицы. Пожалуйста, обратите внимание: если вы размещаете предложение о том, чтобы выполнить то, что я хочу сделать, имейте в виду, что я работаю с базой данных и ResultSet (см. код выше), не предопределенных данных (см. код ниже)!

JTable myTable = new JTable();
myTable.setSelectionModel(new ToggleListSelectionModel()); //custom selection model
myTable.setModel(new DefaultTableModel(
    new Object[][] {
        {"1000", 123},
        {"1000", 234}, 
        {"1001", 123},
        {"1002", 123},
        {"1002", 234},
        {"1002", 345},
        {"1003", 123},
        {"1003", 234}
    },
    new String[] {
        "ColumnA", "ColumnB"
    }
));

Результат:

enter image description here

Желаемого результата (серый фон для каждого нового столбца "а" значение):

enter image description here

Альтернативный результат (альтернативное обозначение всех строк группы):

enter image description here

-1
2019-09-18 14:45:51
источник
0 ответов

Посмотрите другие вопросы по меткам