0

私はよくJFrameを使用しますが、JFrameはアプリケーションであるため、明らかにJFrameが必要です。

public static void main(String[] args)

方法。main()の行も必要です

myJFrame g = new myJFrame();

Eclipseでは、変数gに「ローカル変数gは読み取られません」という警告が表示されますが、その行を省略すると、プログラムは実行されません。なぜその行が必要なのですか?gが必須の場合、なぜ警告があるのですか?

4

3 に答える 3

4

質問に答える-おそらく、コンストラクターsetVisible(true)でアプリケーションを実行するために必要なすべてのメソッド(など)を呼び出します。myJFrameもしそうなら-あなたはgローカル変数を必要としない-あなたは後でそれを使うことは決してない(警告を見て)。

まずmain、すべてのJavaアプリケーションの開始点です。JFrame2つ目は、コンストラクターですべてのことを行う場合、必要なのは行だけです。

new myJFrame(); //in Java it's convention to use first letter 
                //upper-case class names -> MyJFrame

以下は、アプリケーションで最初のウィンドウを実行するためのシンプルで標準的な方法です。

public final class App {
    public static void main(final String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                MainWindow frame = new MainWindow();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            }
        });
    }
}

クラスではMainWindow、Swingコンポーネントなどのみを作成します。

于 2012-07-19T18:54:32.347 に答える
1

警告は、ローカル変数/ポインター(この場合はgと呼ばれます)を宣言しますが、コード内のどこでも実際にそれを利用しないことを意味します。警告が表示されると、プログラムは正常に実行されますが、使用されたことのないJFrameへの追加の「ポインタ」があります。

呼び出されたメソッドからJFrameにアクセスする場合は、myJFrame g = new myJFrame();そのままにしておく必要があります。それ以外の場合new myJFrame();は十分です。

于 2012-07-19T18:55:08.057 に答える
0

このオブジェクトを参照するつもりがない場合は、このオブジェクトを初期化したもので十分です。

new myJFrame();
于 2012-07-19T18:54:38.227 に答える