当前位置:  开发笔记 > 编程语言 > 正文

Java Swing:在Jar中显示图像

如何解决《JavaSwing:在Jar中显示图像》经验,为你挑选了3个好方法。

从eclipse运行Java应用程序时,我的ImageIcon显示得很好.

但是在创建了一个jar之后,图像的路径显然被搞砸了.

有没有办法在运行时从jar中提取图像,以便我可以打开它?或者,有更好的方法吗?

如果可能的话,我想分发一个jar文件.



1> Tom Hawtin -..:

ImageIcon在相同的jar中创建一个图像文件,您的代码将被加载:

new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg"))

Class.getResource返回资源的URL(或null!).ImageIcon有一个从URL加载的构造函数.

要在不在"类路径"上的jar中构建资源的URL,请参阅文档java.net.JarURLConnection.



2> Outlaw Progr..:

您可以尝试以下方式:

InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/images/image.jpg");

在您的JAR文件中,您可能具有以下目录结构:

MyJAR.jar
- com(这里的类文件)
- images
---- image.jpg



3> ekerner..:

这对我来说是加载和设置内容窗格背景图像:

jar(或构建路径)包含:

 - com
 - img
 ---- bg.png

java包含:

JFrame f = new JFrame("Testing load resource from jar");
try {
    BufferedImage bg = ImageIO.read(getClass().getResource("/img/bg.png"));
    f.setContentPane(new ImagePanel(bg));
} catch (IOException e) {
    e.printStackTrace();
}

在jar和unjarred(是技术术语)执行中进行测试和工作.

BTW getClass().getClassLoader().getResourceAsStream("/img/bg.png")- 我先试过 - 给了我一个null的InputStream.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有