您的位置:首页 > 产品设计 > UI/UE

Java GUI:事件监听器 和 事件适配器

2011-12-16 16:58 561 查看
/*
事件监听器:
一个事件监听器对象负责处理一类事件
一类事件的每一种发生情况,分别由事件监听器对象中的一个方法来具体处理.
在事件源和事件监听器对象中进行约定的接口类,被成为事件监听器接口.
事件监听器接口类的名称与事件类的名称是相对应的,例如MouseEvent事件类的监听器接口名为MouseListener.
处理发生在某个GUI组件上的XXXEvent事件的某种情况,其事件处理的通用编写流程:编写一个实现了XXXListener接口的事件监听器类.
XXXListener类中的用于处理该事件情况的方法中,编写处理代码.
调用组建的addXXXListener方法,将类XXXListener创建的实例对象注册到GUI组件上.

JDK中也提供了大多数事件监听器接口的最简单的实现类,称之为事件适配器(Adapter)类.
用事件适配器来处理事件,可以简化事件监听器编写
*/

import java.awt.Button;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TestFram 
{
	public static void main(String[] args)
	{
	 Frame f=new Frame("UGI应用程序 ! ");//创建一个窗口实例,标题为UGI应用程序
	 f.setSize(100,300);//设置窗口的宽和高
	 f.setVisible(true);//设置false: 隐藏部件
	 //有两种方式可以执行关闭窗口,1事件监听器,2事件适配器
	 //f.addWindowListener(new MyWindowListener());//注册事件监听器
	 f.addWindowListener(new MyWindowAdapter());//注册事件适配器
	 
	 //添加一个按钮
	 Button bt=new Button("关闭");
	 //部署按钮宽和高
	 Dimension d=new Dimension();
	 d.width=20;
	 d.height=10;
	 bt.setSize(d);//设置宽和高
	 f.add(bt);
	 
	}

}

MyWindowListener.java :事件监听器

package mgh.java.gui;

import java.awt.Window;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class MyWindowListener implements WindowListener
{

	@Override
	public void windowActivated(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowClosed(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowClosing(WindowEvent e) {
		// TODO Auto-generated method stub
		 e.getWindow().setVisible(false);//隐藏窗口
		((Window)e.getComponent()).dispose();//关闭窗口
		//另一种方式:
		//((Window)e.getSource()).dispose();
		 System.out.println("已经关闭窗口 ! ");
		System.exit(0);//关闭程序
	}

	@Override
	public void windowDeactivated(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowDeiconified(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowIconified(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowOpened(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

}

MyWindowAdapter.java 事件适配器

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class MyWindowAdapter extends WindowAdapter
{
	public void windowClosing(WindowEvent e)
	{
		System.out.println("事件适配器,已经执行!");
		e.getWindow().dispose();//关闭窗口
		System.exit(0);
	}
}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: