精品文档-Java程序设计项目化教程(陈芸)-第8章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Window
Component
Component
Component
事件类名称 ActionEvent ActionEvent ItemEvent, ActionEvent LsitSelectionEvent ItemEvent, ActionEvent ActionEvent AdjustmentEvent
第8章 任务8——处理登录界面中的事件
动作事件的监听器接口ActionListener中只包含一个方 法,语法格式如下:
public void actionPerform(ActionEvent e) 重写该方法对ActionEvent事件进行处理,当Action Event事件发生时该方法被自动调用,形式参数e引用传递过 来的动作事件对象。 在Java图形用户界面中,处理事件时所必需的步骤是: (1) 确定接受响应的组件并创建它。 (2) 实现相关事件监听接口。 (3) 注册事件源的动作监听器。 (4) 事件触发时要进行的相关处理。
MouseMotionListener
WindowsListener
事件监听器委派的事件处理者 actionPerformed(ActionEvent e) itemStateChanged(ItemEvent e) textValueChanged(TextEvent e) keyType(KeyEvent e) keyPressed(KeyEvent e) keyRelease(KeyEvent e) focusGained(FocusEvent e) focusLost(FocusEvent e) mouseClicked(MouseEvent e) mouseEntered(MouseEvent e) mousExited(MouseEvent e) mousePressed(MouseEvent e) mouseReleased(MouseEvent e) mouseDragged(MouseEvent e) mouseMoved(MouseEvent e) windowsClosing(WindowsEvent e) windowsOpen(WindowsEvent e) windowsConified(WindowsEvent e) windowsDeiconified(WindowsEvent e) windowsClosed(WindowsEvent e) windowsActivated(WindowsEvent e) windowsDeactivated(WindowsEvent e)
第8章 任务8——处理登录界面中的事件
8.2.1 动作事件(ActionEvent类) 当用户按下按钮组件(JButton)、双击列表(JList)中的
选项、选择菜单项(JMenuItem),或是在文本框(JTextField) 或文本区(TextArea)输入文字后按下【Enter】键的同时,即 触发了动作事件。此时,触发事件的组件将ActionEvent类的 对象传送给向它注册的监听器ActionListener,由Action Listener负责启动并执行相关代码来处理这个事件。
第8章 任务8——处理登录界面中的事件
事实上,我们希望程序有如下的一系列的响应: (1) 在考试系统登录界面中,程序根据用户点击不同按 钮的操作,进入相关的功能模块。 (2) 输入正确的用户名及密码后,点击【登录】按钮可 以进入考试界面进行考试,如图8-1所示;当输入的用户名或 密码有误时,系统将提示相关错误信息,如图8-2所示;对于 新用户,可以点击【注册】按钮,进行用户注册,如图8-3所 示。 在Java中,要想使图形用户界面对用户的操作产生响应, 就必须对相应的组件添加事件处理代码。
第8章 任务8——处理登录界面中的事件
图8-4描述了委派事件模型的运作流程。我们可以看到, 事件处理机制中包含了以下三个要素:事件源、事件(对象)及 事件监听器。
第8章 任务8——处理登录界面中的事件 图8-4 委派事件模型
第8章 任务8——处理登录界面中的事件
事件源是产生事件的组件,每个事件源可以产生一个或多 个事件。例如,文本框JTextField获得焦点时,按回车键则 产生动作事件,而修改文本框内容时产生的则是文本事件。为 了能够响应所产生的事件,事件源必须注册事件监听器,以便 让事件监听器能够及时接收到事件源所产生的各类事件。当接 收到一个事件时,监听器将会自动启动并执行相关的事件处理 代码来处理该事件。
第8章 任务8——处理登录界面中的事件
如图8-6所示,我们在窗口中设置了三个按钮,用户点击 【确定】按钮屏幕输出“确定”,点击【返回】按钮则输出 “确定”,按下【退出】按钮则可以关闭应用程序窗口。具体 程序代码参见例8-1。
第8章 任务8——处理登录界面中的事件 图8-6 动作事件示例
第8章 任务8——处理登录界面中的事件
14 exit.addActionListener(this);
15 getContentPane().add(ok);
16 getContentPane().add(cancel);
17 getContentPane().add(exit);
18 }
19 //完成事件触发时的相关处理
20 public void actionPerformed(ActionEvent
第8章 任务8——处理登录界面中的事件 图8-5 事件处理类及其继承关系
第8章 任务8——处理登录界面中源自文库事件
表8-1列出了常见的用户行为、事件源和相关的事件类型。 其中, Component是所有GUI组件的父类,因此每个组件都可 以触发ComponentEvent下的FocusEvent、FocusEvent、 MouseEvent、KeyEven事件。在java.awt.event包中,提供 AWT事件所需的大部分的事件类和事件监听器接口,一些 Swing组件所特有的事件监听器接口则在javax.swing.event 中声明。如ListSelectionEvent是包含在javax.swing.event 中的类。
例8-1 ButtonListener.java 1 import java.awt.*; 2 import java.awt.event.*; 3 import javax.swing.*; 4 class ButtonListener extends JFrame
implements ActionListener{ //实现监听 5 JButton ok, cancel,exit; 6 public ButtonListener(String title){ 7 super(title); 8 this.setLayout(new FlowLayout()); 9 ok = new JButton("确定");
第8章 任务8——处理登录界面中的事件
表8-2 事件类、事件监听器接口与事件处理者的关系
事件类 ActionEvent
Itemevent TextEvent KeyEvent FocusEvent
MouseEvent
WindowsEvent
事件监听器接口 ActionListener ItemListener TextListener KeyListener FocusListener MouseListener
第8章 任务8——处理登录界面中的事件
Java中的所有事件都放在java.awt.AWTEvent包中,这些 事件都是从java.util.EventObject类继承而来的,而 java.util. EventObject类又继承于java.lang.Object类。 事件处理类及其继承关系如图8-5所示。图中,有阴影的7个 类是最基础的事件类,分别是动作事件(ActionEvent)、调整 事件(Adjustment Event)、选择事件(ItemEvent)、文本事件 (TextEvent)、窗口事件(WindowsEvent)、键盘事件 (KeyEvent)和鼠标事件(MouseEvent)。我们将在本章重点介 绍动作事件、键盘事件、焦点事件、鼠标事件和窗口事件,其 他部分事件类将结合考试系统的其他功能模块在后续章节中进 行介绍。
WindowsEvent
FocusEvent
KeyEvent
MouseEvent
第8章 任务8——处理登录界面中的事件
对于表8-1中的事件类都有与之对应的事件监听器。 Java中的事件监听器大多以接口形式出现。事件类、事件监 听器接口以及事件监听器委派的事件处理者之间存在一定的对 应关系,如表8-2所示。
第8章 任务8——处理登录界面中的事件 图8-1 登录界面中的【登录】按钮事件响应1
第8章 任务8——处理登录界面中的事件 图8-2 登录界面中的【登录】按钮事件响应2
第8章 任务8——处理登录界面中的事件 图8-3 登录界面中的【注册】按钮事件响应
第8章 任务8——处理登录界面中的事件
8.2 技 术 要 点 本章任务的技术要点是事件处理。事件是用户对一个动作 的启动。常用的事件包括用户单击一个按钮,在文本框内输入 及鼠标、键盘、窗口等的操作。所谓的事件处理,是指当用户 触发了某一个事件时,系统所做出的响应。Java采用的是委 派事件模型的处理机制,也称为授权事件模型。当用户与组件 进行交互,触发了相应的事件时,组件本身并不直接处理事件, 而是将事件的处理工作委派给事件监听器。不同的事件,可以 交由不同类型的监听器去处理。这种事件处理的机制使得处理 事件的应用程序逻辑与生成那些事件的用户界面逻辑(容器与 组件)彼此分离,相互独立存在。
第8章 任务8——处理登录界面中的事件 第8章 任务8——处理登录界面中的事件
8.1 任务描述 8.2 技术要点 8.3 任务实施
第8章 任务8——处理登录界面中的事件
8.1 任 务 描 述 本章的任务是完善用户登录界面中的事件处理。在第7章 中介绍了利用Swing创建的图形界面,可以通过AWT中的布局 管理器对界面中的组件进行布局。但点击界面中的按钮没有任 何相关程序的执行,这是因为程序中缺少对这些组件上所发生 的一系列操作的响应,也就是缺少相应这些组件行为的代码。
表8-3列出了ActionEvent类的常用方法。
第8章 任务8——处理登录界面中的事件
表8-3 ActionEvent类的常用方法
方法 Public String getActionCommand() public Object getSource()
用途 获取触发动作事件的事件源的命令字符 获取发生 ActionEvent 事件的事件源对象的引用
e){
第8章 任务8——处理登录界面中的事件
21 if(e.getSource()==ok) 22 System.out.println("确定"); 23 if(e.getSource()==cancel) 24 System.out.println("返回"); 25 if(e.getSource()==exit) 26 System.exit(0);; 27 } 28 public static void main(String args[]) { 29 ButtonListener pd=new ButtonListener("ActionEvent Demo"); 30 pd.setSize(250,100);
第8章 任务8——处理登录界面中的事件
表8-1 常见用户行为、事件源和事件类型
用户行为 点击按钮 在文本域按下回车键 选定一个新项 选定(多)项 点击复选框 选定菜单项 移动滚动条 窗口打开、关闭、图标(最小化、还 原或正在关闭) 组件获得或失去焦点
释放或按下键
移动鼠标
事件源 JButton JTextField JComBox JList JCheckBox JMenuItem JScrollBar
第8章 任务8——处理登录界面中的事件
10 cancel = new JButton(“返回”);
11 exit = new JButton(“退出”);
12 ok.addActionListener(this);
//注册监听

13 cancel.addActionListener(this) ;
相关文档
最新文档