Funcionalidade básica dos temporizadores Swing [fechada]

Eu sou novo em design gráfico java, e eu gostaria que você, se possível, me ajudasse com um exemplo fácil para me ajudar a entender a funcionalidade básica de JFrames, Timers, SwingControllers e todas essas coisas. Como você implementaria o seguinte caso:

Nós temos um JFrame com um JPanel dentro. Quando a execução começa, o JPanel é branco, mas queremos que ele mude de cor a cada dois segundos:

public class MiJFrame extends javax.swing.JFrame {

    public MiJFrame() {
        initComponents();
    }


    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new MiJFrame().setVisible(true);
                jPanel1.setBackground(Color.yellow);
                jPanel1.setBackground(Color.RED);
            }
        });
    }

    // Variables declaration - do not modify
    private static javax.swing.JPanel jPanel1;
    // End of variables declaration
}

No início, usei o método sleep de um objeto thread entre os métodos setBackgroud (), mas isso não funciona, pois mostra apenas a última alteração. Como você usaria aqui um objeto Timer?

questionAnswers(1)

yourAnswerToTheQuestion