I have tried to use table.repaint() from another thread
If another thread is not the EDT your table is not gonna to be repainted.
You want to update your jtable with a progress bar. You may interested using SwingWorker
. Here is a complete example.
class MySwingWorker extends SwingWorker <String,String>{ //what params you want here
@Override
protected String doInBackground()throws Exception{
//here you download heavy task
//and you call publish() when you want
}
@Override
protected void process(List<String> chunks){
// here you updated your gui
//setValueAt(row,col); and fireTableCellUpdated(row,col);
}
@Override
protected void done(){
//here is called when doInBackGround is finished
}
}
So then you have to call setValue(int row, int column)
and fireTableCellUpdated(int row,int col);
with partial results that swingWorker gives you.
BTW When you insert a row
public void addRow(String sName) {
this.tListUpdater.add(new CLS_ValueUpdater(sName));
this.fireTableDataChanged();
}
May be is better to call
void fireTableRowsInserted(int firstRow, int lastRow)