Java Swing1 基本框架

package com.igswing.zmz;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Swingone {
	public static void display() {
		/* 提供一个关于新创建的 JFrame 是否应该具有当前外观为其提供的 Window 装饰
		 (如边框、关闭窗口的小部件、标题等等)的提示。*/
		JFrame.setDefaultLookAndFeelDecorated(true);

		// 创建及设置窗口
		JFrame myFrame = new JFrame("Swing-one");
		myFrame.setDefaultCloseOperation(myFrame.EXIT_ON_CLOSE);

		// 添加标签
		JLabel myLabel = new JLabel("This is a Test");
		// 因为JFrame不能直接添加组件,需要用getContentPane()函数获取内容面板,再在内容面板上进行添加组件
		// 和Panel的区别??
		myFrame.getContentPane().add(myLabel);

		// 显示窗口
		// 这个方法就是依据你放置的组件设定窗口的大小 使之正好能容纳你放置的所有组件
		//把缝隙吃掉,可能会比较小
//		myFrame.pack();
		myFrame.setSize(200, 200);
		myFrame.setVisible(true);
	}

	public static void main(String[] args) {
		//http://www.importnew.com/15761.html
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                display();
            }
        });
	}
}


这个线程的写法我也是不太懂,可以参考这个//http://www.importnew.com/15761.html    ,然后问了WTteacher,解释如下(还是不懂):

1.Runnable 不是线程,是一个可执行的操作(放入主线程的事件队列) 

2. 第一部分是 回调 (异步操作)

3. 在主线程中执行 display 方法

4.在这貌似画蛇添足,但如果程序复杂 在子线程中可以这样访问 UI(貌似说错了,然后补充了)
5.子线程中不能访问 UI,只有主线程才能操作 UI

原文地址:https://www.cnblogs.com/zhangmingzhao/p/7256597.html