将图像添加到JFrame

时间:2013-01-31 16:49:21

标签: java image swing jframe jlabel

我想在JFrame中添加一个Image,add( )方法生成一个错误,上面写着“找不到符号:方法添加(JLabel)”...我该如何解决?

**我还没有从main方法调用ImageLoading( )方法。

import javax.swing.*;

public class NetworkingGame {

NetworkingGame(){
    JFrame jfrm = new JFrame("Angry Painters");
    jfrm.setSize(800, 480);
    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jfrm.setVisible(true);

}

public void ImageLoading(){
    ImageIcon i = new ImageIcon("angry-painters.jpg");
    JLabel jl = new JLabel(i);
    add(jl); //The error is in this line
}

public static void main(String[] args) throws Exception{
    SwingUtilities.invokeLater(new Runnable(){

        @Override
        public void run(){
            new NetworkingGame();
        }
    });

   }
}

3 个答案:

答案 0 :(得分:4)

JFrame jfrm的可见性受NetworkingGame的构造函数限制。因此add中不存在NetworkingGame方法。成为JFrame的{​​{1}}成员。

NetworkingGame

答案 1 :(得分:3)

可能你应该写

jfrm.add(jl); 

jfrm作为会员。

在你的情况下,你真的打电话给那个不存在的this.add()

答案 2 :(得分:2)

您正在调用add方法,就好像它是类NetworkingGame中的实例方法一样,并且您的类没有任何方法,因此编译器可能会遇到编译错误'在类NetworkingGame中找到此类名称的任何方法,因此请将其添加到Jframe中。

NetworkingGame(){
    JFrame jfrm = new JFrame("Angry Painters");
    jfrm.setSize(800, 480);
    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jfrm.setVisible(true);
    ImageIcon i = new ImageIcon("angry-painters.jpg");
    JLabel jl = new JLabel(i);
    jfrm.add(jl);
}