java事件模型的流程

Event Source(事件源):事件发生的场所,通常就是各个组建,例如按钮,窗口菜单等,

Event(事件):事件封装了GUI组件上发生的特定事情,

EventListener(事件监听器):负责监听事件源所发生的事情,并对各种事件做出相应处理

 

  当用户按一下按钮,就会出发一个相应的事件,

package test1;



import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.Frame;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;



public class EventQs {



	private Frame f = new Frame("测试事件");

	private Button ok = new Button("确定");

	private TextField tf = new TextField(30);



	public void init() {

		// 注册监听器

		ok.addActionListener(new OkListener());

		f.add(tf);// 将button添加到Frame中

		f.add(ok, BorderLayout.SOUTH);

		f.pack();

		f.setVisible(true);

	}



	// 定义事件监听器类

	class OkListener implements ActionListener {

		// 定义的方法是事件处理器,用于相应特定的事件

		public void actionPerformed(ActionEvent e) {

			System.out.println("用户单击了ok按钮");

			tf.setText("HEllo word!!");

		}

	}



	public static void main(String[] args) {

		new EventQs().init();

	}

}

  

说明:

1.实现事件监听器类,该监听器类是一个特殊的Java类,必须实现一个XxxLintener接口

2.创建普通组建,创建监听器对象

3.调用addXxxListener方法将事件监听器对象注册给普通组建,这样当事件源上发生指定事件时,AWT会出发事件监听器,由事件监听器调用相应的方法(事件处理器)来处理事件,事件源上所发生的事件会作为参数传入事件处理。

AWT事件分为两大类:低级事件和高级事件

package test1;



import java.awt.Frame;

import java.awt.TextArea;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;



public class TestWindoeListener {

	private Frame f = new Frame("测试");

	private TextArea ta = new TextArea(200, 200);



	public void init() {

		f.addWindowListener(new MyListener());

		f.setBounds(400,400,450,320);

		f.add(ta);

		f.setVisible(true);// 设置可见

	}



	class MyListener implements WindowListener {



		@Override

		public void windowActivated(WindowEvent e) {

//			ta.append("窗口被激活!\n");



		}



		@Override

		public void windowClosed(WindowEvent e) {

//			ta.append("窗口被成功关闭!\n");

		}



		@Override

		public void windowClosing(WindowEvent e) {

//			ta.append("用户试图关闭窗口!\n");

			System.exit(0);

		}



		@Override

		public void windowDeactivated(WindowEvent e) {

//			ta.append("窗口失去焦点");

		}



		@Override

		public void windowDeiconified(WindowEvent e) {

//			ta.append("窗口被恢复!\n");

		}



		@Override

		public void windowIconified(WindowEvent e) {

//			ta.append("窗口被最小化");

		}



		@Override

		public void windowOpened(WindowEvent e) {

//			ta.append("窗口初次被打开! \n");

		}



	}



	public static void main(String[] args) {

		new TestWindoeListener().init();

	}

}

  

java事件模型的流程

 

你可能感兴趣的:(java)