1. 程式人生 > >Java 100-002:Swing顯示視窗,並在視窗中顯示文字

Java 100-002:Swing顯示視窗,並在視窗中顯示文字

package java01;

import java.awt.*;
import javax.swing.*;

/**
 *   我的java每天100行程式碼002
 *  Swing顯示視窗,並在視窗中輸出一串文字
 * @author Administrator
 *
 */
public class java002 {
	public static void main(String[] args) {
		//事件分派執行緒
		EventQueue.invokeLater(new Runnable() {
			public void run() {
			//顯示視窗
				JFrame frame = new NotHelloWorldFrame();
				frame.setTitle("NotHelloWorld");
				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				frame.setVisible(true);
			}
		}		
		);
	}
}

class NotHelloWorldFrame extends JFrame{
	
	//使建立的視窗中有一個帶有文字資訊的元件
	public NotHelloWorldFrame() {
		add(new NotHelloWorldComponent());//加入元件
		pack();//根據元件的大小,自動調整視窗的大小
	}
	
}

class NotHelloWorldComponent extends JComponent{
	// (小原則):儘量不直接設定大小,而是通過常量的方式在例項域中設定
	public static final int MESSAGE_X = 75;
	public static final int MESSAGE_Y = 100;
	
	private static final int DEFAULT_WIDTH = 300;
	private static final int DEFAULT_HEIGHT = 200;
	
	//重寫paintComponent方法
	public void paintComponent(Graphics g) {
		g.drawString("Not a hello,World program", MESSAGE_X, MESSAGE_Y);
	}
	
	//重寫,返回元件的首選大小
	public Dimension getPreferredSize() {
		return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT);
	}
}