我对使用Swing相当新,我认为在Eclipse中我所要做的就是将一个图像文件放入SRC目录中,程序可以访问它。当然情况并非如此。访问图像的唯一方法是提供整个“C:”文件名。我尝试将其放入子目录并将该文件夹添加到构建路径。我认为这样可行。
我的程序目前名为“PullingMyHairOut”,因为这正是我正在做的事情。如果你回答,请假设我不知道Eclipse的内部工作原理,因为这与事实并不遥远。
import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class PullingHairOut extends JFrame{
ImageIcon img = new ImageIcon("us.jpg");
JLabel label = new JLabel(img);
public PullingHairOut(){
setSize(640,480);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(label,BorderLayout.CENTER);
add(new JButton("Help"),BorderLayout.SOUTH);
setVisible(true);
}
public static void main(String[] args) {
PullingHairOut main = new PullingHairOut();
}
}
答案 0 :(得分:0)
如果您将图像放在源文件夹中,则必须像这样访问它(如果我没记错的话):
src/us.jpg
这是因为当前工作目录从根文件夹开始。然后,我可能错了 - 几个月前我最后一次使用Eclipse加载图像文件。
答案 1 :(得分:0)
右键单击项目根目录以创建名为“res”的文件夹。将你的us.jpg移到文件夹中。并修改您的代码ImageIcon img = new ImageIcon("res/us.jpg");
答案 2 :(得分:0)
阅读Class#getResource()和ImageIcon(URL)构造函数。不要再将其视为文件,最终会让您的应用程序更加灵活。
TL; DR:对于源文件夹根目录中的内容,您应该能够使用Class#getResource(“us.jpg”)在运行时类路径中找到它的URL(在您自己的一个上调用)类)并将结果URL提供给ImageIcon构造函数。