**JAVA** GUI图形界面编程-事件监听机制

>事件监听机制概述


>>包含以下内容:

 事件源:awt包或者swing包中的图形界面组件。
 事件:每一个事件源都有自己的特有的对应事件和共性事件。
 监听器:将可以触发某一个事件的动作都已经封装到监听器中,作为一个事件对象。
 注意:以上三者在java中已经定义好了,直接获取对象来使用就可以。
 事件处理:我们需要自己编程实现的内容。
 对事件和事件具体动作的理解:事件是一个能够激发的事情的情况出现了,动过是这个事件的具体内容。
 但是,监听器的事件处理是根据某一个事件的具体动作绑定的。也就是说,一个事件对应一个监听器对象,
 一个事件的动作,对应一个监听器的具体方法。

>>事件处理流程图


>>事件监听机制的实现

1. 窗口事件的实现

windowListener监听器能够监听的动作,
windowActinvated()窗口被前置
windowClosed()
windowClosing()
windowDeactivated()
windowDeiconified()
windowIconified()
windowOpended()
补充:

1. 添加监听器函数的参数是监听器对象。

2. 监听器对象可以是已经实现的类的对象,也可以是创建一个匿名的对象。

3. 如果用实现接口的方法创建子类,需要复写所有的七个方法。但是WindowAdapter已经复写了所有的方法,只需要继承这个类,只需要复写一个所需要的方法就可以。


>窗体的嵌套和事件的绑定范例


package useAWT;
import  java.awt.*;
import java.awt.event.*;


public class RameDemo {

	//定义该图形中所需要的组件的引用
	private Frame f;
	private Button butt;
	
	RameDemo(){
		init();
	}
	
	//对勒种的一些组件对象进行初始化
	public void init(){
		f = new Frame("my frame");
		//对frame进行基本的设置
		f.setBounds(300,100,600,500);
		f.setLayout(new FlowLayout());
		
		//对控件进行基本的设置
		butt = new Button("my button");
		
		//将控件添加到容器当中
		f.add(butt);
		//加载所有的已经实现的事件
		myEvent();
		//显示窗体
		f.setVisible(true);
	}
	
	//这个函数的目的是将一些事件绑定到一直的组件上边,
	//addWindowListener函数的内容是不同类型的事件对象,及将接受到的时间传递给不同的监听器进行处理
	//函数内部的内容能够接受到不同的触发
	//接受到不同的触发链接到不同 的事件对象(这些对象的类可以在定义新的类,也可以使用匿名类)
	//明白这其中的不同成分:监听的事件主体,触发监听的动作,响应动作(负责处理事件的对象)。这三个共同构成一个完整的监听器
	private void myEvent(){
		f.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
		butt.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				System.out.println("tuichu anniugande");
				System.exit(0);
			}
		});
	}
	public static void main(String [] args){
		RameDemo fn=new RameDemo();
		System.out.println("hello world");
		
	}
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值