Вы уверены, что это:
if (additionals[0] != 0){
rightPanel.add(new JLabel(new ImageIcon("IMAGES/ram"+additionals[0]+"gb.gif")));
count++;
}
for(int x = 1; x<=7; x++){
if (additionals[x] != 0){
rightPanel.add(new JLabel(new ImageIcon("IMAGES/image"+x+".gif")));
count++;
}
}
не должно быть на самом деле?
if (additionals[0] != 0){
rightPanel.add(new JLabel(new ImageIcon("IMAGES/ram"+additionals[0]+"gb.gif")));
count++;
}
for(int x = 1; x<=7; x++){
if (additionals[x] != 0){
rightPanel.add(new JLabel(new ImageIcon("IMAGES/image"+ additionals[x]+".gif")));
count++;
}
}
?
Это сделает ваш код более симметричным.В противном случае, выполните printlns перед ошибочной строкой со строкой, которую вы хотите использовать, чтобы ImageIcon удостоверился в ее правильности.
Например:
for(int x = 1; x<=7; x++){
if (additionals[x] != 0){
String imagePath = "IMAGES/image"+x+".gif";
System.out.println("imagePath = " + imagePath);
rightPanel.add(new JLabel(new ImageIcon(imagePath)));
count++;
}
}
А затем сравните строкикоторые выводятся с именами файлов и путями.Еще лучше создать новый файл и вывести его полный путь, прежде чем пытаться использовать его для создания нового ImageIcon.
caveat: код не был протестирован.