首页 > 解决方案 > Swing - 在 JAR 文件中包含图像

问题描述

我有一个 JAVA 项目,它有一个带屏幕的图形界面,用Swing开发。

我有 2 张图片,背景和图标,它们在包中:

br\com\drsolutions\monitorar\imagens

项目结构:

br\com\drsolutions\monitorar\imagens
    Fundo.jpg
    icone.png
br\com\drsolutions\monitorar\rede
    TestarIcmp.java
br\com\drsolutions\monitorar\ux
    InterfaceGrafica.java
br\com\drsolutions\monitorar
    Aplicativo.java

在 InterfaceGrafica.java 文件中,我将图像添加到 JFrame 中,如下所示:

...
jFrame = new JFrame("Monitorar");
jFrame.setSize(246, 410);
jFrame.setResizable(false);
jFrame.setLayout(null);
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

/* Colocar a imagem no background e o ícone na janela */
try {
    jFrame.setContentPane(new JLabel(new ImageIcon(
            ImageIO.read(new File("src\\br\\com\\drsolutions\\monitorar\\imagens\\Fundo.jpg")))
    ));
    jFrame.setIconImage(new ImageIcon("src\\br\\com\\drsolutions\\monitorar\\imagens\\icone.png")
            .getImage()
    );
} catch (IOException e) {
    return false;
}
...

如何添加图像而不必以这种方式传递完整路径?

如何使图像在我生成的 JAR 文件中工作?

谢谢,迭戈·M·罗德里格斯

标签: javaimageswingjarembedded-resource

解决方案


在将文件放入 JAR 之前,您正在通过磁盘上的路径访问文件。您需要使用资源加载器,如: How to read a file from jar in Java?


推荐阅读