Эта строка не имеет смысла:
BufferedImage img[i] = ImageIO.read(new File(images));
, поскольку вы, похоже, пытаетесь одновременно объявить и использовать массив, и это говорит о том, что вам следует пересмотреть базовый учебник по Java по использованиюмассивы, поскольку эта база знаний является критической и должна быть хорошо известна, прежде чем пытаться либо программировать базу данных, либо программировать на Swing GUI.
Чтобы решить эту проблему, объявите свой массив (или, возможно, лучше - ArrayList )BufferedImage до цикла while, а затем использовать его внутри цикла.Например:
// !!! CAVEAT: code not compiled nor tested !!!
// TOTAL_IMAGE_COUNT is a constant that defines the array size
// an ArrayList might be better though
BufferedImage[] myImages = new BufferedImage[TOTAL_IMAGE_COUNT];
int i = 0;
while (rs.next()) {
String imagePath = rs.getString("path");
System.out.println(imagePath + "\n");
System.out.println("TESTING - READING IMAGE");
myImages[i] = ImageIO.read(new File(imagePath));
imglab[i] = new JLabel(new ImageIcon(myImages[i]));
imgPanel[i]= new JPanel();
imgPanel[i].add(imglab[i]);
loadcard.add(imgPanel[i], i);
i++;
}//EndWhile
Хотя все эти массивы могут даже не понадобиться, если все, что вы делаете, это добавляете JPanels в CardLayout.И мне немного странно, что вы храните путь к файлу изображения в базе данных, а не само изображение.Ваши имена файлов изображений кажутся достаточно тривиальными, что, возможно, база данных даже не нужна.Возможно, все, что вам нужно, это что-то очень простое:
String imageLocation = "lmkpackage/images/";
String[] imageNames = {"one", "two", "three", "four", "five"};
String imgExt = ".jpg";
int count = 1;
for (String imageName : imageNames) {
String imagePath = imageLocation + imageName + imgExt;
BufferedImage img = ImageIO.read(new File(imagePath));
ImageIcon icon = new ImageIcon(img);
JLabel label = new JLabel(icon);
loadcard.add(label, String.valueOf(count));
count++;
}