Java问题加载图像

时间:2012-01-25 22:53:07

标签: java image imageicon

由于某些原因我无法使用我的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等

2 个答案:

答案 0 :(得分:2)

  1. 是窗户吗? GIF != gif否则
  2. 如果您删除条件(additionals[x] != 0)
  3. ,它是否有效
  4. rightPanel对所有图片都足够大了吗?

答案 1 :(得分: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之前创建一个新文件并输出其完整路径。

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