Me ajudeeem, erro sÚtil

ESTE É O PROGRAMA E ESTÁ MOSTRANDO O ERRO ABAIXO, ALGUEM SABE O Q PQ ESTÁ DANDO ESTE ERRO DE CAST.

o erro está nessa linha:


apresentar((ArrayList)iterator.next(), x, y, i);                   
         

package memoria; 

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 

public class Memoria extends JInternalFrame{ 
       
   private ArrayList fig; 
   private JLabel label[]; 
   private GridBagConstraints cons; 
   private GridBagLayout layout; 
   private JPanel panel; 
   Container c; 
    
   public Memoria(){ 
                   
      setTitle("Mémoria");       
      setIconifiable(true); 
      setResizable(true); 
      setClosable(true); 
             
      cons = new GridBagConstraints(); 
      layout = new GridBagLayout(); 
      panel = new JPanel(); 
      panel.setLayout(layout); 
       
      Icon botafogo = new ImageIcon("botafogo.jpg"); 
      Icon cam = new ImageIcon("cam.jpg"); 
      Icon cbf = new ImageIcon("cbf.jpg"); 
      Icon corinthians = new ImageIcon("corinthians.jpg"); 
      Icon cruzeiro = new ImageIcon("cruzeiro.jpg"); 
      Icon flamengo = new ImageIcon("flamengo.jpg"); 
      Icon gremio = new ImageIcon("gremio.jpg"); 
      Icon internacional = new ImageIcon("internacional.jpg"); 
      Icon palmeiras = new ImageIcon("palmeiras.jpg"); 
      Icon santos = new ImageIcon("santos.jpg"); 
      Icon saopaulo = new ImageIcon("saopaulo.jpg"); 
      Icon vasco = new ImageIcon("vasco.jpg"); 
       
      label = new JLabel[24]; 
      fig = new ArrayList(); 
       
      fig.add(botafogo); 
      fig.add(botafogo); 
      fig.add(cam); 
      fig.add(cam); 
      fig.add(cbf); 
      fig.add(cbf); 
      fig.add(corinthians); 
      fig.add(corinthians); 
      fig.add(cruzeiro); 
      fig.add(cruzeiro); 
      fig.add(flamengo); 
      fig.add(flamengo); 
      fig.add(gremio); 
      fig.add(gremio); 
      fig.add(internacional); 
      fig.add(internacional); 
      fig.add(palmeiras); 
      fig.add(palmeiras); 
      fig.add(santos); 
      fig.add(santos); 
      fig.add(saopaulo); 
      fig.add(saopaulo); 
      fig.add(vasco); 
      fig.add(vasco); 
             
      System.out.println(fig.toString()); 
       
      Collections.shuffle(fig); 
       
      System.out.println(fig.toString()); 
                      
      int x = 0, 
            y = 0; 
          
      ListIterator iterator = fig.listIterator(); 
          
      for(int i = 0; i < 24; i++){          
         apresentar((ArrayList)iterator.next(), x, y, i);                   
         x++; 
         if((i + 1) % 6 == 0){ 
            y++; 
            x = 0; 
         } 
          
      }       
             
      getContentPane().add(panel);                      
             
   } 
    
   private class Handler extends MouseAdapter{ 
       
      public void mouseReleased(MouseEvent me){ 
       
                
      } 
   } 
    
   private void apresentar(ArrayList fig, int x, int y, int cont){ 
             
      label[cont] = new JLabel((Icon)fig.get(cont)); 
      cons.gridx = x; 
      cons.gridy = y; 
      panel.add(label[cont]); 
   } 
    
   public static void main(String args[]){ 
       
      new Memoria(); 
   } 
    
    
}       

 

Exception in thread "main" java.lang.ClassCastException: javax.swing.ImageIcon 
        at memoria.Memoria.<init>(Memoria.java:82) 
        at memoria.Memoria.main(Memoria.java:113) 
  

ei pessoaç, já resolvi!!!

esqueceu de verificar iterator.hasNext()