软件体系结构——基于事件的隐式调用风格

  基于事件的隐式调用风格的基本组件是对象或过程,并分类为以下更小的组件:过程或函数。充当事件源或事件处理器的角色。

连接件是事件-过程绑定。组件可以声明或广播一个或多个事件,或者向系统注册,来表明他希望响应一个或多个事件。当某些事件被触发时,向其注册的过程被隐式调用,调用的次序是不确定的。

程序示例如下:

【功能】:点击窗口程序使显示的文字发生改变。

import java.awt.*;
import java.awt.event.*; //引入java.awt.event包处理事件

class BtnLabelAction extends Frame implements ActionListener {
	// 声明窗口类(BtnLabelAction)并实现动作事件接口(ActionListener)
	Label p;
	Button btn;

	void CreateWindow() { // 自定义方法
		setTitle("MyButton");
		p = new Label("1+1"); // 创建标签对象
		btn = new Button("求和"); // 创建按钮对象
		setLayout(new FlowLayout()); // 布局设计,用于安排按钮、标签的位置
		add(p); // 将标签放入容器
		add(btn); // 将按钮放入容器
		btn.addActionListener(this); // 将监听器(窗体对象本身)注册给按钮对象
		setSize(400, 100);
		setVisible(true);
	}

	public void actionPerformed(ActionEvent e) {// 接口ActionListener的事件处理方法
		if (e.getSource() == btn) // 判断动作事件是否是由按钮btn引发的
			if (p.getText() == "1+1") {
				p.setText("1+1=2");
				btn.setLabel("返回");
			} else {
				p.setText("1+1");
				btn.setLabel("求和");
			}
	}
}
public class BtnTest {
	public static void main(String args[]) {
		BtnLabelAction bla = new BtnLabelAction();
		bla.CreateWindow();
	}
}

组件:注册方法addActionlinster(),处理事件的方法 actionPerformed(),发生的事件ActionEvent e,事件源btn,监听器this(窗体对象本身,实现了Actionlistener接口类的对象)。

连接件:①btn.addActionListener(this);  将事件源按钮对象注册到监听器

②系统定义对事件的处理方法,发生的事件为参数public void actionPerformed(ActionEvent e)

③单击btn触发ActionEvent事件,事件管理器会根据发生的ActionEvent事件,自动调用actionPerformed()方法,执行方法体中的语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值