Originariamente inviato da seimejote
non equivale a quanto hai detto prima??
Tu poco fa hai detto: "stavo provando ad implementare la seconda". Ma la seconda che ho detto io non è la a) che hai appena riportato ..... scusa eh.
Comunque la prima soluzione, quella con il timer "one shot" si presta molto bene ad essere "incapsulata" in una comoda classe facilmente riutilizzabile.
codice:
public class SuspendableTimer
{
private int runDelay;
private Timer runTimer;
public SuspendableTimer (int runDelay, ActionListener listener)
{
this.runDelay = runDelay;
runTimer = new Timer (runDelay, listener);
}
public void start ()
{
runTimer.start ();
}
public void stop ()
{
runTimer.stop ();
}
public void suspend (int waitDelay)
{
runTimer.stop ();
Timer t = new Timer (waitDelay - runDelay, new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
runTimer.start ();
}
});
t.setRepeats (false);
t.start ();
}
}
L'ho scritta "di getto" ... non l'ho provata ma dovrebbe essere ok.