Java摇摆:图像显示从内的一个罐子里
-
09-06-2019 - |
题
时运行Java应用程序从蚀我ImageIcon显示出来就好了。
但是,在创建一个罐子的路径图像显然得搞砸了。
有没有方法取的图像从罐子里在运行时所以我可以再打开它吗?或者,是否有一个更好的方式来做到这个吗?
我想要分发的一个罐子文件,如果可能的。
解决方案
创建一个 ImageIcon
从图像的文件在同一个罐子你代码载入:
new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg"))
Class.getResource
返回的网址资源(或 null
!). ImageIcon
有一个构造,载荷从一个网址。
构建一个网址为资源在一个罐子里不上你"类路径",请参阅的文档 java.net.JarURLConnection
.
其他提示
你可以尝试一样的东西:
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/images/image.jpg");
在你的罐子文件,则可能有一个目录的结构:
MyJAR.jar
-com(类文件在里面)
-图像
----image.jpg
这是为我工作到负荷和设置内容的窗背景图像:
罐子(或建造道路)包含:
- 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();
}
测试和工作在这两个罐子和unjarred(是的技术术语)执行。
顺便说一句 getClass().getClassLoader().getResourceAsStream("/img/bg.png")
-我尝试一回我的空输入流.
在//需要将物品寄8.1我做了什么是包括文件夹中的图标和其他图像叫 资源 内部 src 文件夹中的项目文件。所以每当我建立的 罐子 文件夹中包括在那里。该文件树应该是这样的:
- src(Java文件在来源packges在这里)
**包装你的命名项目**
- file.java
资源
- image.jpg
该代码应该是这样的:
jToggleButton1.setIcon(new javax.swing.ImageIcon(this.getClass().getResource("/resources/image.jpg")));
载图像在从罐子文件在运行时间是一样的装载图像在执行自IDE e。g//需要将物品寄的差异是,当装载的图像,从罐子文件的路径必须是正确和它的 情况敏感的 (很重要)。这对我的作品
image1 = new javax.swing.ImageIcon(getClass().getResource("/Pictures/firstgame/habitat1.jpg")); img = image1.getImage().getScaledInstance(lblhabitat1.getWidth(), lblhabitat1.getHeight(), Image.SCALE_SMOOTH); lblhabitat1.setIcon(new ImageIcon(img));
如果在p"/Pictures/firstgame/habitat1.jpg"是在较低的情况下,它不会的工作。检查的空间,情况和拼写