potresti creare vari oggetti Runnable per ogni azione di tipo grafico, e poi a seconda di quello che vuoi fare in quel momento chiami quell'oggetto Runnable con SwingUtilities.invokeLater. Fare un thread alla vecchia per per queste piccole azioni, sopratutto per separere la gestione dell grafica a run time dal thread di gestione eventi, secondo me rende più articolato e confusionario il codice.
![]()