我正在尝试将ImageIcon添加到我的JPanel。
ImageIcon image = new ImageIcon("image.png", null);
JLabel label = new JLabel(image, JLabel.CENTER);
panel.add(label);
确定。图像与类...位于同一文件夹中。
com.package
|- mainclass.java
|- image.png
V
无论出于何种原因,imageicon都不会显示在JPanel中。 我尝试/抓住它,但没有用。完全没有错误!
我在Windows上。
答案 0 :(得分:3)
ImageIcon(String)
假定指定的String值是文件系统上的文件
根据您的描述,我猜测图片是嵌入在应用程序中的,这意味着它不再可以作为文件访问,而是需要作为URL
或InputStream
进行访问
因为图像和类在同一个包中,所以可以使用类似
的内容ImageIcon img = new ImageIcon(getClass().getResource("image.png"));
假设您是从MainClass
答案 1 :(得分:1)
您必须指定full path
,并从应用的root
查看。
在您的情况下,您必须使用new ImageIcon("com/package/image.png", null)
。
答案 2 :(得分:1)
修改
我查看了一些类似情况的旧代码,我首先将图像添加到JLabel然后再添加到JPanel。
尝试将图像添加到JLabel,然后将该JLabel添加到JPanel,如下所示。
ImageIcon image = new ImageIcon(this.getClass().getResource("image.png"));
JLabel picLabel = new JLabel(image);
panel.add(picLabel);