2

NetBeans を使用して新しい JFrame プロジェクトを作成するときに、自動生成されたコードを調べていたところ、私のmainメソッドで次のことがわかりました。

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new TestClass().setVisible(true);
        }
    });

いくつか読んだ後、GUI コンポーネントが EDT で処理されるように、invokeLater の必要性を理解するようになりました。そうは言っても、new TestClass().setVisible(true);ここで実装されている行は、私には少し気が遠くなります。新しいインスタンスを作成するコンテキストで取得します...

TestClass tclass = new TestClass();
tclass.setVisible(true);

run()...しかし、上記の方法で何が起こっているのかよくわかりません。そのコードは匿名クラスを作成していますか? 私はその用語に出くわしましたが、まだ完全には理解していません。そのインスタンスを参照するための変数(とにかく見ることができる)がないため、上にリストした「教科書」の方法でインスタンスを作成していないと思います。

余談ですが、mainメソッドをJFrameクラス(またはGUIクラス)内に配置するのは理想的ではないように思われるので、おそらく移動します。

4

1 に答える 1