如何在 Java 中為 SwingUtilities.invokeLater 編寫 lambda 表示式程式碼?


在名為事件分派執行緒(EDT)的特殊執行緒上執行的事件處理程式碼。呼叫 Swing 方法的大部分程式碼也會在此EDT執行緒上執行。有必要這樣做,因為大部分 Swing 物件方法不是執行緒安全的SwingUtilities是一個實用程式類,並有一個重要的靜態方法,invokeLater()。此方法可用於在 AWT 事件分派執行緒中非同步執行任務。

語法

public static void invokeLater(Runnable doRun)

示例

import javax.swing.*;

public class InvokeLAterLambdaTest {
   public static void main(String[] args) {
      SwingUtilities.invokeLater(() -> {    // lambda expression code 
         JFrame frame = new JFrame();
         frame.setTitle("InvokeLater Lambda Test");
         frame.getContentPane().add(new JLabel("Welcome to Tutorials Point", SwingConstants.CENTER));
         frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
         frame.setSize(375, 250);
         frame.setLocationRelativeTo(null);
         frame.setVisible(true);
      });  // end of lambda
   }
}

輸出

已更新時間: 13-07-2020

643 次瀏覽

開啟你的 職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.