0

由于某种原因,我无法使用我的 java 程序加载某些图像。就在这段代码的上方,我有另一个可以正常工作的图像推荐。

for(int x = 1; x<=7; x++){
        if(additionals[x] != 0){
            rightPanel.add(new JLabel(new ImageIcon("IMAGES/image"+x+".GIF")));
            count++;
        }
    }

图像保存在名为 IMAGES 的文件夹中,称为 image1.gif、image2.gif 等,如果您需要我的其余代码,请询问

4

2 回答 2

2
  1. 是窗户吗?GIF != gif否则
  2. 如果您删除条件,它会起作用(additionals[x] != 0)吗?
  3. rightPanel对所有图像都足够大吗?
于 2012-01-25T22:56:37.513 回答
1

你确定这是:

    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++;
        }
    }

?

它会使您的代码看起来更加对称。否则,请在违规行之前使用要用于制作 ImageIcon 的字符串执行 printlns 以确保它是正确的。

例如:

    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 之前创建一个新文件并输出其完整路径。

警告:代码尚未经过测试。

于 2012-01-26T00:32:56.213 回答