Java 引用内部图像文件

标签 java image swing embedded-resource

<分区>

我正在尝试将图像设置为 JLabel,在我的项目中我有一个文件夹“images”,其中是 logo.png

我正在使用下面的代码来获取它

BufferedImage myPicture = null;

    try {
        myPicture = ImageIO.read(new File("images/logo.png"));
    } catch (IOException e1) {

        e1.printStackTrace();
    }

    JLabel headerImage = new JLabel(new ImageIcon(myPicture));

此文件在 eclipse 中有效,但在可运行 jar 外部不会触发,除非它与包含 Logo 文件的文件夹图像位于同一目录中。

所以我的问题是如何将图像打包到 .jar 文件中并让此代码引用它?

最佳答案

您需要从类路径中获取它,而不是从本地磁盘文件系统中获取。

假设 images 实际上是一个包,并且这个包与当前类在同一个 JAR 中,那么这样做:

BufferedImage myPicture = null;
try {
    myPicture = ImageIO.read(getClass().getResource("/images/Report.png"));
} catch (IOException e1) {

    e1.printStackTrace();
}

JLabel headerImage = new JLabel(new ImageIcon(myPicture));

关于Java 引用内部图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21288371/

相关文章:

html - 用裁剪后的图像填充 div,保持纵横比

java - Repaint() 只工作了一半

java - 如何在JPanel中设置背景图片

java - tic tac toe java 用户 vs 计算机

java - Maven 全局插件配置

c# foreach 文件夹中的图像

java - 如何使用netbeans 7在java swing中选择当前组合框中的值时使另一个组合框可见

java - JMockit 模拟在初始化期间抛出异常的类

java - 如何使用 .Net 以外的技术连接并交换 2010 服务器?

android - 如何在Android中制作类似于滚动壁纸的背景图像?