繁体   English   中英

如何使资源在可运行的jar中工作?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM