Java基础之创建窗口——创建应用程序窗口(TryWindow)

控制台程序。

准备好应用程序窗口及其包含的组件并显示,这称为实现窗口。调用应用程序窗口对象的setVisible()方法就会实现窗口。实现了应用程序的GUI之后,在主线程中修改或查询GUI可能会导致死锁。Swing组件的方法都不是线程安全的,所以它们必须在不是主线程的其它线程中执行。

创建GUI并处理与GUI交互的线程成为Swing事件分派线程。

 1 import javax.swing.JFrame;
 2 import javax.swing.UIManager;
 3 import javax.swing.SwingUtilities;
 4 
 5 public class TryWindow {
 6   public static void createWindow(){
 7     JFrame aWindow = new JFrame("This is the Window Title");
 8     int windowWidth = 400;                                             // Window width in pixels
 9     int windowHeight = 150;                                            // Window height in pixels
10     aWindow.setBounds(50, 100,                                         // Set position
11                       windowWidth, windowHeight);                      // and size
12     aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
13     aWindow.setVisible(true);                                          // Display the window
14   }
15 
16   public static void main(String[] args) {
17 
18 /*     // List look-and-feel class names
19     UIManager.LookAndFeelInfo[] looks = UIManager.getInstalledLookAndFeels();
20     for(UIManager.LookAndFeelInfo look : looks) {
21       System.out.println(look.getClassName());
22     } */
23 
24     SwingUtilities.invokeLater(new Runnable() {
25             public void run() {
26                 createWindow();
27             }
28         });
29   }
30 }

createWindow()方法由匿名Runnable类对象中的run()方法调用,Runnable类对象在main()方法中创建。javax.swing包中定义的swingUtilities类包含多个静态实用方法,包括这里调用的invokeLater()方法。这个方法在事件分派线程中执行作为参数传送的Runnable对象的run()方法,如果要避免处理用户与应用程序窗口进行交互时出现的问题,这就是应采用的方式。

原文地址:https://www.cnblogs.com/mannixiang/p/3463881.html