Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでinvokeLater()メソッドを呼び出すにはどうすればよいですか?


invokeLater() メソッドは静的です SwingUtilitiesのメソッド クラスであり、タスクを非同期に実行するために使用できます。 AWT イベントディスパッチャスレッド SwingUtilities.invokeLater() メソッドはSwingUtilities.invokeAndWait()のように機能します ただし、リクエストはイベントキューに配置されます そしてすぐに戻る invokeLater() メソッドは、実行可能内のコードのブロックを待機しません ターゲットによって参照されます 実行します。

構文
public static void invokeLater(Runnable target)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class InvokeLaterTest extends Object {
   private static void print(String msg) {
      String name = Thread.currentThread().getName();
      System.out.println(name + ": " + msg);
   }
   public static void main(String[] args) {
      final JLabel label= new JLabel("Initial text");
      JPanel panel = new JPanel(new FlowLayout());
      panel.add(label);
      JFrame f = new JFrame("InvokeLater Test");
      f.setContentPane(panel);
      f.setSize(400, 300);
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      f.setLocationRelativeTo(null);
      f.setVisible(true);
      try {
         print("sleeping for 5 seconds");
         Thread.sleep(5000);
      } catch(InterruptedException ie) {
         print("interrupted while sleeping");
      }
      print("creating the code block for an event thread");
      Runnable setTextRun = new Runnable() {
         public void run() {
            try {
               Thread.sleep(100);
               print("about to do setText()");
               label.setText("New text");
            } catch(Exception e) {
               e.printStackTrace();
            }
         }
      };
      print("about to call invokeLater()");
      SwingUtilities.invokeLater(setTextRun);
      print("back from invokeLater()");
   }
}
出力

JavaでinvokeLater()メソッドを呼び出すにはどうすればよいですか?


main: sleeping for 5 seconds
main: creating the code block for an event thread 
main: about to call invokeLater() 
main: back from invokeLater() 
AWT-EventQueue-0: about to do setText()


JavaでinvokeLater()メソッドを呼び出すにはどうすればよいですか?


  1. JButtonのHTMLテキストをJavaで実装するにはどうすればよいですか?

    JButton AbstractButtonのサブクラスです これは、JavaSwing階層の重要なコンポーネントです。 JButton 主にログインベースのアプリケーションで使用できます。 JButton ActionListenerを生成できます 押すかクリックするときのインターフェース ボタン。 JButtonにはテキストがあります またはアイコン またはテキストとアイコンの両方 、太字の斜体テキストを実装することもできます HTMLを使用する タグ。 例 import java.awt.*; import javax.swing.*; public class JBut

  2. JavaでJPanelのpaintComponent()メソッドを実装するにはどうすればよいですか?

    JPanel は軽量のコンテナであり、見えない コンポーネント Javaで。 JPanelのデフォルトのレイアウトはFlowLayout 。 JPanelを作成したら、他のコンポーネントを JPanelに追加できます。 add()を呼び出してオブジェクトを作成します コンテナから継承されたメソッド クラス。 paintComponent() このメソッドは、 JPanelで何かを描画するために必要です 背景色を描く以外。このメソッドは、 JPanelにすでに存在します スーパーを使用する必要があるようにクラス このメソッドに何かを追加し、グラフィックスを取る宣言 オブジェクト パラメータ