Ecco la mia soluzione almeno parzialmente , perchè non funzione ancora bene:
codice:
package jcallremember.client;
import jCallRemember.libreria.ClienteDB;
import java.awt.Color;
import java.lang.reflect.InvocationTargetException;
import java.util.concurrent.locks.ReentrantLock;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.SwingUtilities;
/**
*
* @author Linux
*/
public final class TaskAppuntamento extends java.util.TimerTask {
private static ReentrantLock lock=new ReentrantLock();
private FormSchedaCliente F;
private Thread T;
public ClienteDB getInfo() {
return info;
}
public void setInfo(ClienteDB info) {
this.info = info;
}
private ClienteDB info;
TaskAppuntamento(ClienteDB cliente) {
T=new Thread(this);
this.setInfo(cliente);
}
public void start(){
T.start();
}
public void threadTimer(){
F = new FormSchedaCliente(this.getInfo());
SwingUtilities.invokeLater(F);
}
public void threadT(){
try {
while (!F.isSceltaEffettuata()) {
lock.lock();
int row = FormClientiOggi.getInstance().getModelTable().findRow(info);
try {
FormClientiOggi.getInstance().getTable().setRowSelectionInterval(row, row);
FormClientiOggi.getInstance().getTable().setSelectionBackground(Color.MAGENTA);
Thread.sleep(1000);
FormClientiOggi.getInstance().getTable().setSelectionBackground(Color.CYAN);
FormClientiOggi.getInstance().getTable().repaint();
} finally {
lock.unlock();
}
}
} catch (InterruptedException ex) {
Logger.getLogger(TaskAppuntamento.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Override
public void run() {
if(Thread.currentThread().getId()!=this.T.getId()){
this.threadTimer();
this.start();
}
else if (Thread.currentThread().getId() == T.getId()){
this.threadT();
}
}
}
il thread del Timer si occupa solo di creare il form e di dire all'edt di disegnarlo, mentre l'altro thread si occupa di gestire il colore delle righe della jtable, ogni formschedacliente, fa riferimento a un cliente nella jtable, quando il form viene creato le righe del corrispondente cliente dovrebbero
lampeggiare.. Pero secondo me c'è qualche problema di sincronizzazione, considerando che Jtable non è thred safe ,e quel FormClientiOggi è un singleton.. help me please 
Inoltre la seconda volta non me lo colora anche se ho testato che l'istruzione viene eseguita,ovvero non colora di blu, ma il ciclo si ripete
Vorrei far lampeggiare le righe contemporaneamente anche nel caso di più task.
ho anche una domanda ma se invoco repaint() su un istanza jtable, il repaint mica è eseguito dall'edt?