将ImageIcon添加到JPanel不起作用

时间:2015-01-01 01:57:21

标签: java jpanel panel imageicon

我正在尝试将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上。

3 个答案:

答案 0 :(得分:3)

ImageIcon(String)假定指定的String值是文件系统上的文件

根据您的描述,我猜测图片是嵌入在应用程序中的,这意味着它不再可以作为文件访问,而是需要作为URLInputStream进行访问

因为图像和类在同一个包中,所以可以使用类似

的内容
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);