如何在 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 } }
输出
广告