Trocar imagens em ImagemIcon

boa tarde pessoal, preciso da ajuda de voces, preciso trocar uma imagem e aguardar 3 segundos para aparecer a outro como posso fazer isso.

segue trecho do codigo para melhor intendimento

double x = 1 + Math.random()* (6 - 1);
int valor = (int)x;

   switch(valor){
      
       case 1:
           if(valor == 1){         
       ImageIcon icone1 = new ImageIcon("src/Image/1.png");
       lblDesconto.setIcon(icone1);
       double tax = Integer.parseInt(txtTaximetro.getText());
       double calc = 00;
       double soma = tax - (tax * calc)/100;
       lblResultado.setText(Double.toString(soma));
           }
           break;
       case 2:    
           if(valor == 2){
       ImageIcon icone2 = new ImageIcon("src/Image/2.png");
       lblDesconto.setIcon(icone2);
       double tax = Integer.parseInt(txtTaximetro.getText());
       double calc = 05;
       double soma = tax - (tax * calc)/100;
       lblResultado.setText(Double.toString(soma));
           }
           break;
       case 3:
           if(valor == 3){
         ImageIcon icone3 = new ImageIcon("src/Image/3.png");
       lblDesconto.setIcon(icone3);
       double tax = Integer.parseInt(txtTaximetro.getText());
       double calc = 10;
       double soma = tax - (tax * calc)/100;
       lblResultado.setText(Double.toString(soma));
           }
          break;

Já tentou usar Thread.sleep(3000); ?