[英]How to get resources working in runnable jar?
我的Jframe中有一个图像图标。我正在其中使用图像。当我导出到可运行的Jar中时,图像不显示。
String iPath = "res/images/Mobile.png";
JLayeredPane layeredPane = new JLayeredPane();
layeredPane.setBounds(0, 0, 315, 610);
InputStream stream = (InputStream) getClass().getResourceAsStream(iPath);
JLabel mobileImageLabel;
mobileImageLabel = new JLabel(new ImageIcon(iPath));
//mobileImageLabel = new JLabel(new ImageIcon(ImageIO.read(stream)));
// mobileImageLabel = new JLabel(new ImageIcon(AppFrame.class.getResource(iPath)));
mobileImageLabel.setBounds(0, 0, 315, 610);
mobileImageLabel.setVisible(true);
layeredPane.add(mobileImageLabel, Integer.valueOf(0));
我用谷歌搜索并找到了getResourceAsStream方法,但是似乎抛出了NullPointerException。
因此,请按正确的方向帮助我:)
谢谢你的帮助 ...
注意我尝试的方法已被注释
要在按钮中设置图像,我这样做:
JButton yourButton = new JButton("text button");
try {
yourButton.setIcon(new ImageIcon(ImageIO.read(getClass().getResourceAsStream("/images/icon-for-your-button.png"))));
} catch (IOException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
您必须在项目中包含如下图像:
在您的情况下,我认为答案是这样做的:
new ImageIcon(ImageIO.read(getClass().getResourceAsStream("/images/icon-for-your-button.png")))
尝试更换
String iPath = "res/images/Mobile.png";
通过
String iPath = "C:/..../res/images/Mobile.png";
每当使用图像时,请尝试为图像放置完整路径。 因此,当您生成.jar文件并尝试从其他位置运行它时(可能需要从桌面运行jar),您将获得所有图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.