1

イメージを JFrame に追加したいのですが、add( )メソッドが「シンボルが見つかりません: method add(JLabel)」というエラーを生成しています...どうすれば修正できますか?

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

   }
}
4

3 に答える 3

4

の可視性は のJFrame jfrmコンストラクタによって制限されていNetworkingGameます。したがって、addメソッドは に存在しませんNetworkingGameJFrameのメンバーにします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 に答える