import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class FrameDemo {

/**

* 创建和显示一个 GUI.

* 基于线程保护的目的,这个方法需要由事件分配线程来跳用.

*/

private static void createAndShowGUI() {

//创建和配置一个窗口

JFrame frame = new JFrame("FrameDemo");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabel emptyLabel = new JLabel("");

emptyLabel.setPreferredSize(new Dimension(175, 100));

frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);

//显示这个窗口

frame.pack();

frame.setVisible(true);

}

public static void main(String[] args) {

//给事件分配进程分配一项作业:

//创建并显示这个应用的 GUI

javax.swing.SwingUtilities.invokeLater(new Runnable() {

public void run() {

createAndShowGUI();

}

});

}

}