【问题标题】:Swing - Include images in JAR file [duplicate]Swing - 在 JAR 文件中包含图像 [重复]
【发布时间】:2019-12-02 10:59:42
【问题描述】:

我有一个 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·罗德里格斯

【问题讨论】:

  • 我认为你应该看看这个答案:stackoverflow.com/a/8661032/4904569
  • "jFrame.setLayout(null);" 1) Java GUI 必须在不同的操作系统、屏幕尺寸、屏幕分辨率等上使用不同语言环境中的不同 PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或 combinations of them 以及 white space 的布局填充和边框。
  • .. 2) 应用程序资源在部署时将成为嵌入式资源,因此明智的做法是立即开始访问它们。 embedded-resource 必须通过 URL 而不是文件访问。请参阅info. page for embedded resource 了解如何形成 URL。

标签: java image swing jar embedded-resource


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-05-13
    • 2018-08-28
    • 1970-01-01
    • 2014-10-05
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    相关资源
    最近更新 更多