我的Jframe中有一个图像图标。我正在使用图像。当我导出到Runnable 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));
我用google搜索&找到了getResourceAsStream方法。但它似乎抛出了NullPointerException。
所以帮助我正确的方向:)
感谢您的帮助......
注意 我试过的方法已被评论
答案 0 :(得分:0)
要在按钮中设置图像,我这样做了:
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")))
答案 1 :(得分:0)
尝试替换
String iPath = "res/images/Mobile.png";
通过
String iPath = "C:/..../res/images/Mobile.png";
每当您处理图像时,请尝试为图像添加完整路径。因此,当您生成.jar文件并尝试从不同的地方运行它时(可能您希望jar应该从桌面运行),您将获得所有图像。