Ciao ho questa piccola problematica.
ho creato un bottone in una tabella quando clicco parte un processo che viene completato nel giro di 10 - 20 secondi.
Nel bottone modifico il testo con "..." e fin qui tutto bene.

codice:
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
    	if (isSelected) {
      		button.setForeground(table.getSelectionForeground());
      		button.setBackground(table.getSelectionBackground());
    	} 
    	else{
      		button.setForeground(table.getForeground());
      		button.setBackground(table.getBackground());
    	}
    	
    	label = "...";
    	button.setText( label );




    	_row=row;
    	isPushed = true;
    	return button;
}


La problematica entra in gioco quando voglio inserire nel mio bottone un'icona con un gif animata per rendere più chiaro il messaggio di attesa.

al posto di button.setText( label );
ho provato ad inserire un Thread
codice:
ActivateIconButtonThread t1=new ActivateIconButtonThread(button);
t1.start();


class ActivateIconButtonThread extends Thread
{
   private JButton butt;
   public ActivateIconButtonThread(JButton _button)
   {
      butt=_button;
   }


   @Override
   public void run()
   {
	   butt.setIcon(AppResources.getIcon("loadR.gif"));
   }
}
E non funziona, mi mostra l'icona alla fine del processo.

Ho provato ad inserire uno invokeLater
codice:
javax.swing.SwingUtilities.invokeLater(new Runnable() {
    		public void run() {
    			button.setIcon(AppResources.getIcon("loadR.gif"));
    		}
    	});
ma il risultato è sempre lo stesso di prima.

Cosa devo fare per ingannare l'EDT?!?!?

Grazie.