1

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

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

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();
        }
    });

   }
}
4

3 回答 3

4

的可见性JFrame jfrm受 的构造函数的限制NetworkingGame。所以add方法中不存在NetworkingGame。使您JFrame成为NetworkingGame.

public class NetworkingGame {
    private JFrame jfrm;

    NetworkingGame(){
        jfrm = new JFrame("Angry Painters");


    ...

        JLabel jl = new JLabel(i);
        jfrm.add(jl);
于 2013-01-31T16:53:11.080 回答
3

也许你应该写

jfrm.add(jl); 

jfrm成为会员。

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

于 2013-01-31T16:52:46.357 回答
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);
}
于 2013-01-31T16:53:27.803 回答