Пожалуйста, попробуйте сделать это, используя пользовательский рендер, который легко решит вашу проблему
JTable myTable = new JTable();
// You can specify the columns you need to do the required action
myTable.getColumnModel().getColumn(0).setCellRenderer(new MyRenderer());
public class MyRenderer extends DefaultTableCellRenderer {
// This is a overridden function which gets executed for each action to
/// your Jtable
public Component getTableCellRendererComponent (JTable table,
Object obj, boolean isSelected, boolean hasFocus, int row, int column) {
// Use this row, column to change color for the row you need, e.g.
if (isSelected) { // Cell selected
cell.setBackground(Color.green);
}
}
}
Примечание: этот рендерер можно использовать не только для выделения цвета, см. пользовательский рендеринг Jtable Для синхронизации ваших изменений в ответ на очередь вы можете запланировать это в отдельном потоке.