Tempo para mostra imagem

galera to com uma duvida chata. como faço para aperta um botão e apareça uma imagem apos 5 segundos apareça outra e apos mais 10 outra(isso com um toque só no botão), tentando usar thread mas não manjo muito fiz isso mas não deu certo…

======= classe principal =======
package principal;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class Principal extends JFrame implements ActionListener {

    public int time;
    JButton botao = new JButton("OK");
    ImageIcon im1 = new ImageIcon(getClass().getResource("imagem1.gif"));
    ImageIcon im2 = new ImageIcon(getClass().getResource("imagem2.gif"));
    
    JLabel imagem = new JLabel(im1);
    Contole c1 = new Contole();
    
    // metodo construtor!
    public Principal(){
        janela();
      
    }
    
    
    
    public void janela(){
        setLayout(null);
        // JLabel imagem !!
        imagem.setBounds(10, 10, 300, 250);
        getContentPane().add(imagem);
        
        // BOTÂO
        botao.setBounds(300, 20, 80, 80);
        botao.addActionListener(this);
        getContentPane().add(botao);
        
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        setVisible(true);
    }
    
    public void temporizador(){
        
        if(time == 5){
            imagem = new JLabel(im2);
        }
        else if(time == 10){
            imagem = new JLabel(im1);
        }
    }
    
 
    public static void main(String[] args) {
        new Principal();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        c1.start();
        this.temporizador();
       
    }

    public int getTime() {
        return time;
    }

    public void setTime(int time) {
        this.time = time;
    }
    
}

============= controlador ============
package principal;

public class Contole extends Thread{
    
    Principal pr = new Principal();
    
    
    public void run(){
        
        try {
            sleep(500);
           for(int i = 0; i <= 5; i++){
               pr.time = i;
           }
        } 
        catch (InterruptedException ex) {
            
        }
        
    }
    
}