Java:在JFrame中显示图像

时间:2015-10-12 00:01:46

标签: java swing

我在链接我的“fish.png”图片时遇到了困难,因此它可以出现在JFrame中。这是我从网上修改过的一些代码:

package evolution;

import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Image extends JFrame {

    public Image() {

        this.getContentPane().setLayout(new FlowLayout());
        JLabel label1 = new JLabel("Example Text");
        ImageIcon icon = new ImageIcon("fish.png");
        JLabel label2 = new JLabel(icon);

        add(label1);
        add(label2);
    }

    private static void createAndShowGUI() {

        JFrame frame = new Image();
        frame.pack();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        createAndShowGUI(); 
    }
}

出现“示例文本”标签,因此我知道JFrame有效。我把相同的“fish.png”放在src文件夹(此类所在的位置)中,并在主文件夹(src文件夹所在的位置)中放置一级,但JFrame仅显示文本标签而不显示图像。如何正确链接?

2 个答案:

答案 0 :(得分:2)

使用:

ImageIcon icon = new ImageIcon(getClass().getResource("fish.png"));

fish.png文件放在源文件旁边(实际上是类文件)。即使它包含在jar文件中,它也可以工作。

答案 1 :(得分:0)

找到Eclipse存储项目文件的目录,并将图像放在该目录中。我尝试过并且工作了。