I think I inroduced this by adding a sleep inside a invokeLater task. I read a bit about Swing UI concurency and they recommend to use javax.swing.Timer when a delayed task needs to be executed. This has the advantage to not require a invokeLater task and can execute a task given a delay. This gets executed inside Swing UI Thread and does not create a new Thread (like java.util.Timer) so task acumulation is avoided gracefuly
↧