Mostrar um Frame por tempo determinado

Galera seguinte estou com uma duvida, Como posso fazer uma Janela aparecer 10 vezes, cada uma por 30 segundos por exemplo:
abre a janela 1 —> passa 30 segundos —> fecha a janela1—> abre janela 2-----fecha janela 2---- e assim por diante, sera que eu tenho que usar threads?

obs: A janela é uma só, eu vou criar 10 objetos da mesma, eu só vo mudar os comonentes nela.

valeu galera.

Dê uma olhada no código abaixo:

public class Janela extends JFrame {

    public static void main(String[] args)
    {
        JFrame[] frames = new JFrame[10];

        frames[0] = new JFrame("1");
        frames[1] = new JFrame("2");
        frames[2] = new JFrame("3");
        frames[3] = new JFrame("4");
        frames[4] = new JFrame("5");
        frames[5] = new JFrame("6");
        frames[6] = new JFrame("7");
        frames[7] = new JFrame("8");
        frames[8] = new JFrame("9");
        frames[9] = new JFrame("10");
        
        for(JFrame frame : frames)
        {
            frame.setSize(300,300);
        }

        int j;
        
        for (int i = 0; i < 10; i++)
        {
            j = 0;

            for(JFrame frame : frames)
            {
                if (i == j)
                    frame.setVisible(true);
                else
                    frame.setVisible(false);

                j++;
            }
            try {
                Thread.sleep(30000);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }    
    }
}

Espero ter ajudado.