私は最近、Java での GUI プログラミングの基礎を学び、探求し始めました。
しばらくプログラミングをしていたので、バックエンドの作業や作業しか行っていませんでした。その結果、ユーザー インターフェイスに最も近いのはコマンド コンソールです (恥ずかしいことです)。
私は Swing を使用しています。私が収集できる限り、その拡張により、AWT も使用しています。
私の質問は、次のコードに基づいています。
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frame.setVisible(true);
}
} );
この奇妙なコードを完全に理解したいと思っており、「イベントディスパッチスレッド」という用語に何度も出くわしたため、しばらくこれを調査してきました。私が間違っている場合は訂正してください。複数のスレッドを使用することと、Java Swing がそれらのスレッドを解釈する方法に関係しています。上記のコードは、ウィンドウを作成する前にすべてのスレッドが「安全」であることを確認するために使用されるため、invokeLater?
私はそれを読んだ:
「イベントディスパッチスレッドからフレームで動作するメソッドのみを呼び出すことができます」
また、特定の状況下でのみ、メイン メソッドからフレームで動作するメソッドを呼び出すことができます。
誰かがイベントディスパッチスレッドとは何かを明確にしてくれませんか?
複数の実行スレッドとどのように関連し、それらのスレッドが main メソッドから呼び出されるのは安全ではないのでしょうか? また、なぜこの invokeLater が必要なのですか?
ウィンドウを他のオブジェクトとして作成することはできませんか?
これらの関係とアイデアを把握していないため、研究で少し障害が発生しました。
余談ですが、私は深い理解に基づいて自分の知識を基にしたいと思っています。これが全体的な最良の結果につながり、結果として最良のプログラムにつながると信じているからです。何かがどのように機能するかを深く理解している場合は、コードにオウム返しするだけでなく、ヒントや微調整を効果的に使用できるので、恐れずにさらに詳細な説明を提供して知識を広げてください.
ありがとうございました。