para problemas de bucle al recorrer las imágenes de Jlabel con un clic de botón

en una aplicación de Java, tengo un Jlabel al que quiero asignar una nueva imagen cada vez que hago clic en un botón, usando un bucle for puedo hacer que muestre la última imagen omitiendo todas las imágenes, sé que hay un error en mi lógica aquí tal vez no debería estar usando un bucle for? algún consejo

 private String imageList[];
 ImageIcon image;
 imageList =  new String[] {"src\\Tour_Eiffel_Wikimedia_Commons.jpg","src\\Ben.jpg", "src\\Rio.jpg", "src\\Liberty.jpg", "src\\Pyramid.jpg"};

 //constructor setting first image to display on load
public GeographyGameGUI() {
       image = new ImageIcon(imageList[0]);
            imageLbl.setIcon(image);
 }

  //button method
   private void nextBtnActionPerformed(java.awt.event.ActionEvent evt) {                                        


      for (imgCount = 1; imgCount < imageList.length; imgCount++) {
            image = new ImageIcon(imageList[imgCount]);
            imageLbl.setIcon(image);

    }

si no uso un bucle for y simplemente uso un contador (que se muestra a continuación) que declaro fuera del método del botón, se repite mostrando correctamente las imágenes pero se encuentra con una ArrayIndexOutOfBoundsException. ¿Cuál es la mejor práctica aquí? Gracias

 image = new ImageIcon(imageList[imgCount]);
     imageLbl.setIcon(image);
    imgCount++;

Respuestas a la pregunta(2)

Su respuesta a la pregunta