问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请简要说明Java基于SWING的图形用户界面设计中的事件机制及处理事件的步骤 谢谢了,简要

发布网友 发布时间:2022-04-15 08:07

我来回答

2个回答

热心网友 时间:2022-04-15 09:37

在编程语言中的事件就是当某组件的状态发生改变的时候通知其它对象发生了这件事,我们在这里只讨论图形界面的组件,有可能是按钮、文本框、菜单、多选等等。
对于通知其它对象的方法一般有两种模式:
1)推模式:状态改变的对象通知其它对象;
2)拉模式:其他对象不停的查看该对象状态是否发生改变。
例如我去小卖部买烟,要一包红塔山,结果小卖部没货了,如果我把我得电话给小卖部老板,烟如果到了请给我打电话,这就是推模式。如果我每隔5分钟来小卖部看一看烟是否到了,这就是拉模式。
Java采用的是推模式,所有监听事件都基于观察者设计模式,所以我们也可以自己给予观察者开发出专用的*。

我们JavaGUI程序开发,会经常使用到监听事件,比如一个小计算器的程序,当我们点击“计算”按钮后,希望程序将两个文本框中的数字相加,那么就必需给这个按钮添加事件:
1)按钮的动作触发事件接口是ActionListener接口(不同组件要实现不同功能需要有不同的接口),我们需要写一个事件类,实现ActionListener接口,接口中需要我们实现的方法actionPerformed(ActionEvent e)代表了当按钮事件被触发后需要程序做些什么,比如在这里用System.out.println("你好")在控制台打印你好,这一步就相当于我把电话写在纸上。
2)调用JButton组件实例的addActionListener(ActionListener al)方法(其它事件也有相应的方法)将上面写的事件类注册到这个按钮上,这就相当于我把写着电话的纸条交给小卖部的老板。
上述两部工作完成后,这个按钮的事件就添加完成了,程序运行,点击按钮,动作事件被触发,控制台显示“你好”。

实例:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

/**
* 一个简单的按钮事件教学实例
* @author 米强
*
*/
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("你好");
}

}

热心网友 时间:2022-04-15 10:55

JButton j = new JButton();
j.addXXXXListener(new XXXListener(){
/*里面有XXXListener的各种事件方法的实现,不想全部实现可以newXXXAdapter()*/
});
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
二手房物业费该怎么处理 二手房物业费该如何处理 今年八月份买的房子,物业让交一一年欠的物业费,我应该交么,_百度知 ... 深圳房产评估费怎么收费 1小时3分59秒24如何简写 稿纸上怎么写时间 玉米荷叶茶的功效与作用是什么 玉米荷叶茶的作用和功效禁忌是什么 眼睛上眼皮靠眼角的地方摸上去感觉有个硬疙瘩,而且眼睛很疼肿... 上眼皮突然肿了很痒怎么回事 在旺旺上点击进入我的店铺,可以显示我的店铺,但是在淘宝网上搜索我旺旺名字怎么搜索不到啊? 淘宝的店铺名字太难记了,有办法通过卖家旺旺名字搜索到店铺吗? 鞍马、单杠、跳远、吊环哪项不是体育运动 我是知识产权专业的,二专辅修工科,可以考专利代理人吗? 单杠运动是平移运动还是旋转的事 工科毕业两年想考硕士然后考公务员,行政管理和法律硕士选择哪个好? 拉单杠属于无氧运动吗?会不会有增高的效果? 法律硕士考公务员 我的本科是工科,现在想考个法律硕士,以后毕业了,考公务员算是法学专业吗? 工科本科在读,将来想做专利代理方面.在考专利代理人之前,是考法律硕士好,还是司法考试好,还是律师资格证好 工科背景本科毕业生能报考法律顾问么? 理工科博士怎么转当专利律师呢? 工科生爱好法律,想自学取得律师资格,我的梦想能实现吗 我大学本科学的是高分子材料,工科的,由于对法律有一定的兴趣, 跨专业考研,工科科考法律。 大哥,我是一所本科学校理工科学生,想考律师证!我可以考么?如果可以,我需要准备什么 工科本科毕业,以后是不是就不能考律师证了 鲁滨逊漂流记故事情节梗概 枸杞,灵芝,黄芪泡水喝用什么比例好 java设计用户图像界面? 梦见天上好多太阳 求解 还有狮子在大吼 如何让软的东西变硬 怎样把软纸变硬,且看不过来 【急求方法】怎样改变发质,让柔软的发质变硬? 有什么办法让发质软的变硬 什么东西可以很快由软变硬 诛仙里地图标记是怎么做 你好 我想把我公司地标 标在地图上怎么做啊 谢谢 我想在自己电脑上的县地图上做地标,可以用什么软件 利用java写一个用户注册图形界面 在广州出租车的车上丢了东西,在没有记住车牌、车颜色、忘记拿*的情况下!还有什么方法可以找到的?? 深圳出租车发票真伪查询 广州的士费发票 上面的侯时费是怎么算的 广州的定额20元的出租车发票如何辨别真假? 世界环保基金会给武汉疫情时期捐了多少钱? 消防文员考一般的武警在职研究生可以考吗?都需要哪些条件 淘宝省钱卡红包什么时候更新 淘宝省钱卡18个红包用完什么时候更新 淘宝省钱卡每个月红包一样吗 淘宝省钱卡过期还能领后面的红包吗 淘宝省钱月卡下个月的钱已经扣了可以修改这个月的更新时间吗