Jak używać zegara Swing, aby opóźnić ładowanie paska postępu

Muszę znaleźć sposób na użycie zegara Swing z paskiem postępu. Próbowałem użyć Thread.sleep (), ale zawiesił aplikację, gdy z niej korzystałem. Jakiekolwiek sposoby korzystania z Swing Timera zamiast Sleep ()?

public void piiEros(int dist)
{
    Pii pii = new Pii();
    pii.setVisible(true);
    for(int pc = 0;100 > pc; pc++)
    {
        try {
            Thread.sleep(dist/100);
        } catch (InterruptedException ex) {
            Logger.getLogger(Trav.class.getName()).log(Level.SEVERE, null, ex);
        }
        pii.pg.setValue(pc);
    }
    pii.dispose();
    o.Eros();
}

UWAGI: Pii to klasa z paskiem postępu. Dist to prędkość, z jaką się ładuje. Trav jest klasą, w której znajduje się ta metoda. Pc oznacza%, ile jest zrobione, jest wyświetlane na pasku. o.Eros otwiera kolejny GUI.

questionAnswers(2)

yourAnswerToTheQuestion