You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何从父目录获取图片并添加至JLabel?

从父目录assets文件夹加载图片到JLabel的示例代码

假设你的代码位于src目录下,项目根目录包含src、assets、bin三个文件夹,以下是两种可行的实现方式:

方式一:使用文件相对路径(开发阶段适用)

直接通过相对路径定位到assets文件夹下的图片,适合本地开发调试场景:

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class LocalImageLoader {
    public static void main(String[] args) {
        // 相对路径:从src目录向上跳转至项目根目录,再进入assets文件夹
        String imagePath = "../assets/demo.png";
        
        // 初始化ImageIcon并绑定到JLabel
        ImageIcon imageIcon = new ImageIcon(imagePath);
        JLabel imageLabel = new JLabel(imageIcon);
        
        // 创建窗口展示效果
        JFrame frame = new JFrame("本地图片加载示例");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(imageLabel);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

方式二:使用类加载器加载资源(打包后适用)

如果需要将项目打包为JAR文件运行,文件路径可能失效,此时推荐用类加载器加载资源,需先将assets标记为项目的资源根目录:

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ResourceImageLoader {
    public static void main(String[] args) {
        // 通过类加载器获取资源路径,assets作为资源根目录时,直接写图片文件名即可
        ImageIcon imageIcon = new ImageIcon(ResourceImageLoader.class.getResource("/demo.png"));
        
        JLabel imageLabel = new JLabel(imageIcon);
        
        JFrame frame = new JFrame("资源图片加载示例");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(imageLabel);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

注意事项

  • 确保图片文件名和路径拼写正确,注意区分大小写
  • 方式一中,若IDE的运行工作目录是项目根目录,路径可简化为assets/demo.png
  • 方式二中,需在IDE设置里将assets文件夹标记为资源根目录,确保打包时资源文件被正确包含

内容的提问来源于stack exchange,提问作者Colton Paul Badock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:16:06