Java GUI编程

一、创建窗口

1.导入java包:import java.awt.Frame; 调用Frame构造方法;
2.调用一个方法让窗体可见:f.show(); 此方法可行,但已过时,被setVisible()方法取代,方法的参数值:true 可见窗口;false 不可见窗口;
3.设置窗体大小:f.setSize(x,y); 单位默认像素;或者
导入java包:import java.awt.Dimension;
Dimension d=new Dimension(400,300);
f.setSize(d);
构造一个 Dimension,并将其初始化为指定宽度和高度。
4.设置窗体位置:f.setLocation(400,200);或者
导入java包:import java.awt.Point;
Point p=new Point(400,200);
f.setLocation( p );
在坐标空间中指定的 (x,y) 位置构造并初始化一个点。

5.f.setBounds(400,200,400,300);//一个方法完成窗体大小和位置的设置

6.设置窗体标题:f.setTitle(“HelloWorld”);或者调用Frame构造方法时,直接设置窗口标题:Frame(String title)即构造一个新的、最初不可见的、具有指定标题的 Frame 对象。
7.延迟函数:Thread.sleep(3000);//延迟三秒

try {
			Thread.sleep(3000);//延迟三秒
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
import java.awt.Frame;
public class FrameDeom {
	public static void main(String[] args) {
		//创建窗体
		Frame f=new Frame();
		//Frame f=new Frame("HelloWorld");
		//设置窗体标题
		f.setTitle("HelloWorld");
		//设置窗体大小
		f.setSize(400,300);//单位默认像素
		//		Dimension d=new Dimension(400,300);
		//		f.setSize(d);
		//设置窗体位置
		f.setLocation(400,200);
		//		Point p=new Point(400,200);
		//		f.setLocation(p);
		//调用一个方法,设置让窗体可见
		//f.show();//划横线表示过时的
		f.setVisible(true);//true 可见窗口,false 不可见
		//System.out.println("HelloWorld");
	}
}

java中如何设置窗体大小 java窗体大小怎么设置_gui

二、关闭窗口

事件监听机制:
A:事件源 事件发生的地方
B:事件 要发生的事情
C:事件处理 针对发生的事情做出的处理方案
D:事件监听 把事件源和事件关联起来

举例:人受伤事件

事件源:人(具体对象)
	Person p1=new Person("小明");
	Person p2=new Person("小红");
事件:受伤
	interface 受伤接口{
		一拳();
		一脚();
		一板砖();
	}
事件处理:
	受伤处理类 implements 受伤接口{
		一拳(){System.out.println("鼻子流血,洗洗");}
		一脚(){System.out.println("晕倒,送到通风处");}
		一板砖(){System.out.println("头破血流,送到医院");}
	}
事件监听:
	p1.注册监听(受伤接口)
import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class FreamDemo01 {
	public static void main(String[] args) {
		//创建窗体对象
		Frame f=new Frame("窗体关闭");
		//设置窗体属性
		f.setBounds(400,200,400,300);
		//设置窗体可见
		f.setVisible(true);
		//关闭窗体
		//事件源:f
		//事件:对窗体的处理
		//事件处理:关闭窗体(System.exit(0);)
		//事件监听
		f.addWindowListener(new WindowListener() {
		  /*注册监听*/           /*窗体监听事件*/
			@Override
			public void windowOpened(WindowEvent e) {
				// TODO Auto-generated method stub
			}
			@Override
			public void windowIconified(WindowEvent e) {
				// TODO Auto-generated method stub
			}
			@Override
			public void windowDeiconified(WindowEvent e) {
				// TODO Auto-generated method stub
			}
			@Override
			public void windowDeactivated(WindowEvent e) {
				// TODO Auto-generated method stub
			}
			@Override
			//事件处理
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
			@Override
			public void windowClosed(WindowEvent e) {
				// TODO Auto-generated method stub
			}
			@Override
			public void windowActivated(WindowEvent e) {
				// TODO Auto-generated method stub
			}
		});
	}
}

说明:WindowListener是一个接口,而一个方法的参数是一个接口可以用以下两种方法实现这个接口:
1.自定义一个外部类实现此接口;
2.匿名内部类(此案例使用了);
案例中关闭窗口使用匿名内部类的方法,因为接口内的方法很多,要实现此接口必须要把接口内的方法都实现,如果接口内只有一个方法则用匿名内部类。
在此提供一种新的方法,用适配器类改进。

//用适配器类改进
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		});
三、添加按钮

窗体布局:窗体中组建的排列方式

1.流式布局

从上至下、从左到右。

2.边界布局

按照东西南北中分布,如果只有一个按钮则会沾满整个屏幕。

3.网格布局

按照矩阵的布局来划分,每个区域只占一块。(计算器)

java中如何设置窗体大小 java窗体大小怎么设置_java_02


4.网格包布局

按照矩阵的布局来划分,一个按钮所占的区域不规则。

java中如何设置窗体大小 java窗体大小怎么设置_System_03


5.卡片布局

选择不同的按钮ABC,出现不同的画面。

java中如何设置窗体大小 java窗体大小怎么设置_gui_04

package demo03;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Button;
import java.awt.FlowLayout;
/*
 * 需求:把按钮添加到窗体,并对按钮添加一个点击事件
 * A:创建窗体对象
 * B:创建按钮对象
 * C:把按钮添加到窗体
 * D:窗体显示
 *
 */
public class FrameDemo01 {
	public static void main(String[] args) {
		//创建窗体
		Frame f=new Frame("添加按钮");
		//设置窗体属性
		f.setBounds(400,200,400,300);
		
		//设置布局为流式布局
		f.setLayout(new FlowLayout());
		
		//创建按钮对象
		Button bu=new Button("按钮");
		bu.setSize(20,10);
		
		//把按钮添加到窗体上
		f.add(bu);	
		//设置窗体可以关闭
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		});
		bu.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.out.println("你再点试试");
			}
		});
		//让窗体可见
		f.setVisible(true);
	}
}