与 lambda 的窗口标题上的 Hello World
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("Hello World!");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(200, 100);
frame.setVisible(true);
});
}
}
在 main
方法内部:
在第一行调用 SwingUtilities.invokeLater
,并将一个带有代码块 () -> {...}
的 lambda 表达式传递给它。这将执行 EDT 上传递的 lambda 表达式,它是 Event Dispatch Thread 的缩写,而不是主线程。这是必要的,因为在 lambda 表达式的代码块中,将创建和更新 Swing 组件。
在 lambda 表达式的代码块中:
在第一行,使用 new JFrame("Hello World!")
创建一个名为 frame
的新 JFrame
实例。这将创建一个带有 Hello World!
的窗口实例。在它的标题。然后在第二行,frame
配置为 EXIT_ON_CLOSE
。否则窗口将被关闭,但程序的执行将保持活动状态。第三行使用 setSize
方法将 frame
实例配置为宽度为 200 像素,高度为 100 像素。到目前为止,执行都不会显示任何内容。只有在第四行调用 setVisible(true)
后,才会将 frame
实例配置为出现在屏幕上。