你确定这:
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之前创建一个新的File并输出其完整路径。
警告:代码尚未经过测试。
您是否100%确定您正在寻找图像的正确位置?如果你运行这一行:'System.out.println(System.getProperty(“user.dir”));'返回什么?您的IMAGES目录是否在相对于用户目录的正确位置(从上面给出的代码行输出的路径字符串)?例如,如果它返回'C:\ Users \ Foo \ Documents \ workspace \ bar',那么IMAGES应该在:'C:\ Users \ Foo \ Documents \ workspace \ bar \ IMAGES' –
是的,我确信我是看在正确的文件夹,就像我说我有其他的行,参考图像从相同的文件夹,并使用相同的路径只是“图像/文件名”+ aValue +“。gif”不超过代码上的几行和eblow它没有问题 – Nate
您的pastebin代码与上面发布的代码不同。哪个是对的?你是否收到任何错误讯息? –