Java での SwingUtilities.invokeLater() の使用
Java プログラミングでは、同時アクセスを防止する簡単に実現可能な方法を開発者に提供するために、Swing
設計者は、アクセスするすべてのコードが同じスレッドで実行される必要があるという規則を提供しました。
SwingUtilities.invokeLater()
メソッドは、Abstract Window Toolkit (AWT) イベントディスパッチスレッドでランナブルを実行します。 これは、Swing
データ構造がスレッドセーフではないためです。
スレッド セーフとは、エラーを引き起こすことなく、複数のスレッドから並列に使用できることを意味します。
Java での SwingUtilities.invokeLater()
メソッドの使用
SwingUtilities.invokeLater()
メソッドは、Java アプリケーションでマルチスレッドを使用し、アプリケーションのユーザー インターフェイスとして Swing
を使用する場合に重要です。 ユーザー インターフェイスの更新はすべて、イベント ディスパッチ スレッドで行う必要があります。
スレッド内のコードは、イベント ハンドラーから直接呼び出されるわけではありませんが、グラフィカル ユーザー インターフェイス (GUI) の更新コードを特別に調整し、通常、そのコードはイベント ディスパッチ スレッドで呼び出されます。
SwingUtilities.InvokLater()
コード:
package codes;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class Codes {
protected static void frameUI() {
// Creating JFrame and calling from the main method
JFrame myFrame = new JFrame("Testing SwingUtilities.Invokelater");
myFrame.setBounds(20, 20, 350, 250);
myFrame.setVisible(true);
System.err.println(myFrame.getSize());
myFrame.setResizable(false);
System.err.println(myFrame.getSize());
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
frameUI(); // Calling Jframe
}
});
}
}
イベントディスパッチスレッド
Java プログラミングでは、具体的には、Swing
を使用してグラフィカル ユーザー インターフェイス (GUI) ベースのプログラミングを行う場合、マルチスレッドを経験し、イベント ディスパッチ スレッドを聞いたり使用したりしている必要があります。
イベント ディスパッチ スレッドは、イベント ハンドラを呼び出すスレッドです。 基本的に、ユーザー インターフェイス (UI) コード全体がこのスレッドによって実行されます。
多くのエラーを回避するのに役立つため、1つの指定されたスレッドでユーザー インターフェイス (UI) 全体を処理することをお勧めします。
Java スレッディング
スレッド化は、コンピューター プログラミングの一般的な概念です。 スレッドは、プロセス全体の軽量なサブプロセスです。
アプリケーションの並列処理の全体的なパフォーマンスが向上します。 アプリケーションは、アプリケーション タスクの性質に応じて、独立して実行される場合もあれば、依存して実行される場合もある小さな実行可能ユニットに分割されます。
Java での Thread
の構文:
Thread myThread = new Thread();
各スレッドには、個別の制御フローを表す 1つのプロセスがあります。 これらは、Web サーバーとネットワーク サーバーに正常に実装されています。
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn