проблема в обновлении JLabel в цикле for

Идея моей программы - выбрать одно имя из списка, который ранее был сохранен в другом JFrame. Я хотел бы напечатать на этикетке все имена одно за другим с небольшой задержкой между ними, а после этого остановиться на одном из них. Проблема в том, чтоlbl.setText("String"); не работает, если есть более одногоsetText код.

Вот часть моего кода:

public void actionPerformed(ActionEvent e)
{
    if (RandomNames.size != 0) 
    {
        for (int i = 0; i < 30; i++)
        {
            int rand = (int)(Math.random() * RandomNames.size);   
            stars.setText(RandomNames.list.get(rand));

            try
            {
                Thread.sleep(100);
            }
            catch (InterruptedException err)
            {
                err.printStackTrace();
            }
        }

        int rand2 = (int)(Math.random() * RandomNames.size);
        stars.setText(RandomNames.list.get(rand2));
        RandomNames.list.remove(rand2);
        RandomNames.size = RandomNames.list.size();

    }

    if (RandomNames.list.size() == 0)
    {
        last.setText("\u062A\u0645 \u0638\u0647\u0648\u0631 \u062C\u0645\u064A\u0639 \u0627\u0644\u0623\u0633\u0645\u0627\u0621 \u0627\u0644\u062A\u064A \u0641\u064A \u0627\u0644\u0642\u0627\u0626\u0645\u0629 !");
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос