java 事件 分类 gui_JavaGUI组件事件监听原理简析与实现步骤(适合JavaGUI初学者阅读) | 学步园...

今天看到一个提问,说是JavaGUI中的事件监听很难,想不通,我把自己对事件的理解简单描述一下,本文章适合JavaGUI初学者阅读:

在软件

对于通知其它对象的方法一般有两种模式:

1)推模式:状态改变的对象通知其它对象;

2)拉模式:其他对象不停的查看该对象状态是否发生改变。

例如我去小卖部买烟,要一包红塔山,结果小卖部没货了,如果我把我得电话给小卖部老板,烟如果到了请给我打电话,这就是推模式。如果我每隔5分钟来小卖部看一看烟是否到了,这就是拉模式。

Java采用的是推模式,所有监听事件都基于观察者设计模式,所以我们也可以自己给予观察者开发出专用的监听器。

我们JavaGUI程序开发,会经常使用到监听事件,比如一个小计算器的程序,当我们点击“计算”按钮后,希望程序将两个文本框中的数字相加,那么就必需给这个按钮添加事件:

1)

按钮的动作触发事件接口是ActionListener接口(不同组件要实现不同功能需要有不同的接口),我们需要写一个事件类,实现

ActionListener接口,接口中需要我们实现的方法actionPerformed(ActionEvent

e)代表了当按钮事件被触发后需要程序做些什么,比如在这里用System.out.println("你好")在控制台打印你好,这一步就相当于我把电

话写在纸上。

2)调用JButton组件实例的addActionListener(ActionListener al)方法(其它事件也有相应的方法)将上面写的事件类注册到这个按钮上,这就相当于我把写着电话的纸条交给小卖部的老板。

上述两部工作完成后,这个按钮的事件就添加完成了,程序运行,点击按钮,动作事件被触发,控制台显示“你好”。

实例:

878f165eb13b32f08beb4246c8c75cbc.png

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

/**

* 一个简单的按钮事件教学实例

* @author 米强

* @blog http://hi.baidu.com/mq612/blog

*

*/

public class Test extends JFrame {

public Test() {

super("简单的按钮事件实例");

// 一个按钮的实例化对象

JButton button = new JButton("按钮");

// 构造一个事件类,该类实现了ActionListener动作接口

MyActionListener action = new MyActionListener();

// 为这个按钮添加动作事件(匿名类等写法在这里不做讨论)

button.addActionListener(action);

// 将按钮添加到窗体中

getContentPane().add(button);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(300, 200);

setLocationRelativeTo(null);

setVisible(true);

}

public static void main(String[] args) {

new Test();

}

}

/**

* 事件类,实现ActionListener接口

* @author 米强

*

*/

class MyActionListener implements ActionListener {

/**

* 动作事件出发后所执行的方法

*/

public void actionPerformed(ActionEvent e) {

// 在控制台打印“你好”

System.out.println("你好");

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值