如何在 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 次浏览

开启你的 职业生涯

完成课程以获得认证

开始
广告