0

我需要 jframe 上的图像图标,但我不想给出路径。我正在使用这个

jLabel1.setIcon(new javax.swing.ImageIcon("C:\\Users\\ABC\\Desktop\\folder name\\1.jpg"));

因为每个系统都有不同的路径,这就是我不能在其他系统(计算机)上编译它的原因。我需要一些方法,以便仅通过文件名设置图像图标。并且图像在src文件夹中。

4

2 回答 2

4

Image作为嵌入式资源阅读。此处显示的新images文件夹只需要在类路径中可用

public class ImageApp {

    public static void main(String[] args)  {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                Image image = null;
                try {
                  image = ImageIO.read(getClass().getResource("/images/1.png"));
                } catch (IOException e) {
                    e.printStackTrace();
                }

                JFrame frame = new JFrame("Image App");
                frame.add(new JLabel(new ImageIcon(image)));
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}
于 2013-09-04T14:02:22.910 回答
-1

您可以使用相对路径:例如,如果图标在程序工作目录(与程序相同的目录)中,则可以使用“1.jpg”,如果在文件夹中 - “folderName/1.jpg”。

于 2013-09-04T14:02:20.690 回答