我有一个以前从未遇到过的问题,并且无法在网上找到解决方案。我有一个小程序,它使用一些图像来打印菜单。
这是我用来打印图像的类:
public class ViewImage extends JPanel {
private static final long serialVersionUID = 1L;
protected Image image = null;
public ViewImage(int x, int y, String path) {
this(x, y, new ImageIcon(path).getImage());
}
public ViewImage(int x, int y, Image image) {
this.image = image;
this.setBounds(x, y, image.getWidth(null), image.getHeight(null));
}
public void paintComponent(Graphics g) {
int x = ((this.getWidth() - image.getWidth(null)) / 2);
int y = ((this.getHeight() - image.getHeight(null)) / 2);
g.drawImage(image, x, y, null);
}
public void setImage(String path) {
this.image = new ImageIcon(path).getImage();
}
}
我的图像都是类路径的一部分,我称之为:
this.getClass().getClassLoader().getResource("MyImage.png").getPath()
工作正常,直到我将我的程序打包成一个 jar 文件并从控制台运行它:
java -jar MyJar.jar
我的程序启动良好,但没有打印图像。没有异常,没有错误,什么都没有。
什么会导致这种行为?