如何将ImageIcon添加到JFrame?

时间:2012-10-22 12:42:47

标签: java swing jframe jlabel imageicon

我正在尝试将图像添加到一个帧但看起来它不起作用。 ImageIcon从指定文件创建的图像。图像文件位于java文件存在的seam目录中。

import java.awt.BorderLayout;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

    public class image {

        public static void main(String args[])
        {
            TimeFrame frame = new TimeFrame();
        }
    }

    class TimeFrame extends JFrame
    {
        //Image icon = Toolkit.getDefaultToolkit().getImage("me.jpg");
        ImageIcon icon = new ImageIcon("me.jpg");
        JLabel label = new JLabel(icon);
        public TimeFrame(){
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setTitle("My Frame");
            setSize(500,400);
            //this.setIconImage(icon);
            add(label,BorderLayout.CENTER);
            setVisible(true);
        }


    }

3 个答案:

答案 0 :(得分:5)

如果您的图标位于TimeFrame java文件旁边,则应使用

java.net.URL imgUrl = getClass().getResource("me.jpg");
ImageIcon icon = new ImageIcon(imgUrl);

java.net.URL imgUrl = TimeFrame.class.getResource("me.jpg");
ImageIcon icon = new ImageIcon(imgUrl);

您(可能)目前正在您的工作目录中查找,您可以通过

输出
System.out.println(System.getProperty("user.dir"));

答案 1 :(得分:4)

你试试这个吗?

 ImageIcon ImageIcon = new ImageIcon("me.jpg");
    Image Image = ImageIcon.getImage();
    this.setIconImage(Image);

答案 2 :(得分:1)

只需将目录更改为" src / me.jpg"