Java程序设计——11事件处理

合集下载

实验十一 Java中的异常处理

实验十一  Java中的异常处理

实验十一Java中的异常处理x=n.nextInt();if(x!=999)sum+=x;}catch(InputMismatchException e){}System.out.println(sum);}}}class TestXin{/*** @param args*/public static void main(String[] args) { // TODO Auto-generated method stubXin n=new Xin();System.out.println(n);}}结果:五、实验总结(对本实验结果进行分析, 实验心得体会及改进意见)5.分析程序的运行结果(1)class A{A(){System.out.println("A structure!");}A(int m){System.out.println("A("+m+")");}}public class B extends A{B(int m){System.out.println("B("+m+")");}public static void main(String[] args) { // TODO Auto-generated method stubnew B(100);}}(2)class A{A(){System.out.println("A structure!");}A(int m){System.out.println("A("+m+")");}}public class B extends A{B(){System.out.println("B structure!");}B(int m){System.out.println("B("+m+")");}public static void main(String[] args) { // TODO Auto-generated method stubnew B(100);}}(3)class A{A(){System.out.println("A structure!");}A(int m){System.out.println("A("+m+")");}}public class B extends A{B(){System.out.println("B structure!");}B(int m){//super(m);System.out.println("B("+m+")");}public static void main(String[] args) { new B(100);}}(4)class A{A(){System.out.println("A structure!");}A(int m){System.out.println("A("+m+")");}}public class B extends A{B(int m){super(m);//System.out.println("B("+m+")");}public static void main(String[] args) { new B(100);} }。

java程序设计(3)

java程序设计(3)

11.1.2 用Java实现底层网络通信

Socket类


客户端要与服务端相连,则客户端需要建立Socket对象。
Socket s = new Socket("机器名或Ip地址", 端口号)

ServerSocket类

需要调用accept方法接受客户呼叫。 另外,经常需用线程来处理多个客户 示例:参见chat目录
第11章 网络、多媒体和数据库编程
JMF: Java Media Framework

下载

/technetwork/java/javase/download-142937.html 安装后,注意path及classpath的变化 如果是用IDE,则要将jar加到Lib中

示例 jmfDemo目录下

PlayerMusic.java 播放mp3 JMFMediaPlayer.java 播放视频及音频
第11章 网络、多媒体和数据库编程
11.3 Java数据库编程

11.3.1 Java访问数据库的基本步骤 驱动程序

Jdbc-odbc桥

JDK自带 /downloads/mysql/ /downloads/connector/j/ /zh-cn/download/details.aspx?id=11774
第11章 网络、多媒体和数据库编程
11.4 J2EE及J2ME简介

目前,Java 2平台有3个版本,它们是适用于小型 设备和智能卡的Java 2平台Micro版( Java 2 Platform Micro Edition,J2ME)、适用于桌面系 统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应 用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。 这三种版 本从Java语言的角度上来看是一致的,但在功能 的裁减、系统的构架、应用的环境等方面又各有 特色。

《Java基础程序设计》_课后习题

《Java基础程序设计》_课后习题

第一章思考题】1、简述path 环境变量的作用。

2、请说说你对JVM 的理解。

答案】1、path 环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。

当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path 环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。

2、JVM 是Java Virtual Machine 的缩写,全称是Java 虚拟机。

Java 语言的一个非常重要的特性就是跨平台性,而Java 虚拟机是实现这一特性的关键。

不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。

Java语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

第二章【思考题】1、请简述& 与&& 的区别。

2、简述break、continue 和return 语句的区别。

【答案】1、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

当运算符“ &”和“ && ”的右边为表达式时,使用“ &”进行运算,不论左边为true 或者false,右边的表达式都会进行运算。

如果使用" && ”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“ && ”被称作短路与。

2、break 语句:在switch 条件语句和循环语句中都可以使用break 语句。

当它出现在switch 条件语句中时,作用是终止某个case并跳出switch结构。

高级语言程序设计Java

高级语言程序设计Java
可以声明一个具有特定数据类型和长 度的数组,并使用初始化表达式为其 分配具体的值。
字符串表示与操作
Java中的字符串由字符序列构成,可以使用 双引号或String类表示字符串,同时提供了 多种字符串操作方法,如连接、截取、替换 等。
数组访问与遍历
可以通过下标访问数组中的元素,并 使用循环结构遍历整个数组。
03
面向对象的概念
类与对象
类(Class)是对象的模 板或蓝图,定义了对象的 属性和方法
在Java中,使用`class`关 键字定义类,使用`new` 关键字创建对象
ABCD
对象(Object)是类的实 例,具有类定义的属性和 行为
类可以包含字段(Fຫໍສະໝຸດ eld)、 方法(Method)和构造器 (Constructor)等成员
条件语句
01
根据条件表达式的值选择不同的执行路径,包括if语句和switch
语句等。
循环语句
02
用于重复执行某段代码,直到满足特定的退出条件,包括for循
环、while循环和do-while循环等。
跳转语句
03
用于在程序中实现流程的跳转,包括break语句和continue语
句等。
数组与字符串
数组声明与初始化
数组与字符串的转换
可以将字符串转换为字符数组进行处 理,也可以将字符数组转换为字符串 进行输出。
03 Java面向对象编程
面向对象编程概述
01
面向对象编程(OOP)是一种编程范式,基于“对象”的概念, 可以包含数据和对数据的操作
02
OOP的三个主要特征是:封装、继承和多态
Java是一种纯面向对象的语言,支持类和对象、继承、多态等

第13章事件处理(第4版)

第13章事件处理(第4版)

实现上述的接口,针对想要捕获的事件编写方法代码 。如要捕获单击按钮事件,就要为ActionListener接口 里的actionPerformed()方法编写代码。
为事件监听者创建一个对象,让自己的组件和方法完 成对它的注册,方法是在监听者接口的名字里加入一 个前缀“add”,如addActionListener()
待用户通过鼠标、键盘给它通知(消息驱动), 它再根据这个通知的内容进行相应的处理(事件 驱动)。 通常一个键盘或鼠标操作会引发一个系统预先定 义好的事件,用户只需编写代码,定义每个特定 事件发生时程序应做出何种响应即可。
3
13.1 委托事件处理
事件(event):用户使用鼠标或键盘对窗口中的组 件进行交互时所发生的事情。对这些事件做出响 应的程序,称为事件处理程序(Event Handler)。
见教材例13.5
20
13.6 文本组件及相应的事件处理
文本组件所触发的事件主要有动作事件 ActionEvent和文本变化事件CaretEvent 。 见教材例13.6
21
13.7 窗口组件及窗口事件处理
Window类的任何子类都可能触发下列的窗口事 件:打开窗口、正在关闭窗口、关闭窗口、激活窗 口、变成非活动窗口、最小化窗口和还原窗口。 Window类常用方法见教材表13.8
5
13.1 委托事件处理
Java语言规定:为了让监听者能对事件源发生的 事件进行处理,创建该监听者对象的类必须声明 实现相应的监听者接口或继承相应的适配类,即 必须在类体中具体定义该接口中所有方法的方法 体或覆盖适配器类中的相应方法,以供监听者自 动调用相应事件处理方法来完成对应事件的任务 ,这些处理事件的方法就是事件处理程序。
JCheckBoxMenuItem类的构造方法及常用方法 见教材表13.30、13.31。

JAVA程序设计课程标准

JAVA程序设计课程标准

1.JList 和 List
1.会使用 Java
2.JComboBox 和 ComboBox 组 件 设 计 注 册
3.JOptionPane 、JCheckBox 界面
学生信息
和 JRadioButton
2.会应用布局
4
查询设计
8
查询模块
4.组件布局(FlowLayout、 管 理 器 对 组 件
提问,并正确回答问题 并回答问题
答老师的提问
2.课外学习
能按时完成课外拓展练 能按时完成 80%的课
能按时完成 60%的
习;能积极参加网上讨 外拓展练习;能参加
30%
课外拓展练习;能
论活动;能积极主动地 网上讨论活动;能进
参加网上讨论活动
进行自我学习
行自我学习
能积极参加小组活动;
3.小组学习
能主动代表小组参与小 能 积 极 参 加 小 组 活 能参加小组活动;
(4) 能应用 Java 中的事件处理方法处理组件事件; (5) 能应用 Java 异常抛出、捕获和处理,编写高质量的程序; (6) 会使用 JDBC 访问数据库技术连接数据库; (7) 会使用 Java 文件处理技术完成文件的处理; (8) 会使用 Graphics 类绘制图形。
三、与前后课程的联系
Java 基础 定义、赋
2.懂得 Java 程
1
模块
值、输入、 4.Java 变量与常量;
序的工作原理
12
5.运算符与表达式;
输出;实
3.掌握 Java 程
6.Java 流程控制语句;
现流程控
序设计语言基
7.数组;
制、定义

8.面向对象基础。

谈Java技术中的事件处理与应用

谈Java技术中的事件处理与应用
参考文献:
[1] 《Java 程序设计实践教程》刘万军 宋强 清华大学出 版社 2006 年 9 月
[2] 《Java 编程技术》孙一林 彭波 机械工业出版社 2008 年 6月
(收稿日期:20 11. 05 .05 )
·64·
事件源
触发的事件类的类型Button NhomakorabeaActionEvent
CheckBox
ActionEve nt、ItemEvent
—— —— —— —— —— —— —— 作者简介:邢素萍(1957-),女,江苏南京人,南京工业职业技术学院教授,研究方向:Java 技术,南京,210046
王 健南 (1957- ),男 ,江 苏南 京人 ,南 京工 业职 业技 术学 院教 授, 研究 方向 :数 据库 技术 ,教 育技 术, 南京 ,210046
Microcomputer Applications Vol. 27, No.12, 2011
技术交流
微型电脑应用
2011 年第 27 卷第 12 期
文章编号:100 7-757X(2011)12-0063-02
谈 Java 技 术 中 的 事 件 处 理 与 应 用
邢素萍,王健南
摘 要:简述了 JAVA 语言面向对象程序设计中事件处理的基本方法,并通过一个包含命令按钮的实例说明了编程基本原则。
Java 把事件类分为语义事件和底层事件,语义事件直接 继承自 AWTEvent 类。如: ActionEvent、Adjustm enEvent
图2
在 AWT 组件中,有的只是触发一个事件处理类,而有 的可能触发几个事件处理类,给出常用组件与可能触发事件 的关系,如表 1 所示:
表 1 事件源与触发的事件类类型的关系

java 事件处理模型

java  事件处理模型

java 事件处理模型当用户在Java GUI界面进行一些操作时,例如,移动鼠标、选取菜单项目等,将会引发相关事件(Event)。

在Java中,事件用具体的对象来表示,用户的相关动作会由JVM(Java虚拟机)创建成相应的事件对象,用以描述事件来源、事件类型以及相关的信息。

1.事件处理流程Java对事件的处理采用授权事件模型,也称为委托事件模型(Delegation Even t Model)。

在这个模型下,每个组件都有相应的事件,如按钮具有单击事件,文本域具有内容改变事件等。

当对于某个组件的事件被触发后,组件就会将事件发送给组件上注册的每一个事件监听器(EventListener),事件监听器中定义了与不同事件相对应的事件处理者,此时事件监听器会根据不同的事件信息调用不同的事件处理者,完成对这次事件的处理。

只有向组件注册的事件监听器才会收到事件信息。

此种模型的显著特点是,当组件被触发事件后,本身不去处理,而将处理的操作交给第三方来完成。

例如,当用户在GUI界面单击了一个按钮信息,此时按钮就是一个事件源对象,按钮本身没有权利对这次单击做出反应,需要做的就是将信息发送给本身注册的监听器(事件处理者)来处理。

在现实生活中,授权处理的实例也是非常的多。

打个不太恰当的比喻,比如说有一位李先生,李先生可能会发生很多法律纠纷,可能是民事法律纠纷,也可能是刑事法律纠纷,那么李先生可以请律师,他可以授权王律师负责帮他打民事法律的官司,同时也可以授权张律师帮他打刑事法律的官司。

这个请律师的过程从李先生的角度来看,就是授权的过程,而从王律师和张律师的角度来看,一旦被授权,他们就得时刻对李先生负责,时刻“监听”李先生的事件信息,一旦发生民事纠纷了,王律师就要马上去处理,而一旦发生刑事纠纷了,张律师就要马上进行处理。

此时此刻,李先生就是事件源,王律师是一个事件处理者,张律师是另外一个事件处理者,民事纠纷和刑事纠纷就是不同类型的事件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

改变观感
• 改变观感使用两个静态方法:
– UIManager.setLookAndFeel(plaf)设置要使用的观感
• 参数plaf为观感的名字,实际为一个类名,可以为以下字符串:
– javax.swing.plaf.metal.MetalLookAndFeel – com.sun.java.swing.plaf.windows.WindowsLookAndFeel – com.sun.java.swing.plaf.motif.MotifLookAndFeel
见Example6.java private class MyWindowListener extends WindowAdapter { public void windowClosing(WindowEvent e) { int result = JOptionPane.showConfirmDialog(……); if(result == JOptionPane.OK_OPTION)System.exit(0); } }
– SwingUtilities.updateComponentTreeUI(panel)刷新要改变的组件
• 参数panel给出面板中的一个组件即可刷新整个面板。
见Example4.java tButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent aEvent) { try{ UIManager.setLookAndFeel(aPlafName); SwingUtilities.updateComponentTreeUI(Example4.this); }catch(Exception e){ e.printStackTrace(); }; } }); 赵志崑
添加窗口事件监听器 窗口事件监听器实现 WindowListener接口 要处理的窗口事件
适配器类
• 问题:仅仅需要处理关闭窗口事件,但却要写另外六个空方法。 • 解决方法:使用适配器类。
– 适配器类是一个实现了某个接口,但其中所有方法都为空的类。 – 每个具有不止一个方法的监听器接口都对应有一个适配器类。 – 编写监听器类时只需从适配器类派生一个子类即可。
myListener2
事件监听机制
button 事件源: 当事件发 生时事件源自动调用 监听器列表中各个对 象的相应方法 监听器对象
列表(LinkedList): 事件源的addActionListener 方法可以将监听器对象添 加到列表中
l1
l2
监听器类
public class Listener1 implements ActionListener { public void actionPerformed(ActionEvent e){…} } 事件类 interface ActionListener { void actionPerformed(ActionEvent e); } class ActionEvent { …… }
• 每个平台提供的图形界面元素都不一样。 • 不同平台上的awt库存在不同Bug。
– awt的事件处理模型在Java1.1版进行了大的改动后,到目前的版本基本 没变。
• swing:
– Java 2.0中出现。 – Swing组件全部是由纯Java编写的,用户界面元素都绘制在空白窗口上 ,绘制和行为都由swing类自己完成。各平台之间唯一不同的就是最外 层窗口的创建。
• Java的事件处理采用的是事件监听器方式。
监听器
– 事件监听器是一个实现了监听器接口的对象。 – 事件源(如按钮组件)是一个能够注册监听器并为它们发送事件的对象(可视 构件)。 – 每个事件源拥有自己的事件监听器,可以有多个。 – 当事件源产生了一个事件后,事件源就会给所有监听器对象发送通知,即 调用事件监听器对象的相应方法。 – 事件的信息被封装在一个对象中,不同事件源能够产生不同种类的事件。 – 编程人员要做的就是编写事件监听器类,创建一个事件监听器对象,并添 加到相应的事件源。
• 编写事件处理程 序的步骤如下:
– 编写监听器类; – 在监听器类中实 现接口中需要的 方法; – 方法中可以使用 ActionEvent对象 获取事件参数; – 创建一个事件监 听器对象; – 将该对象添加到 事件源。
赵志崑
事件源与监听器的关系
• 一个事件源可以对应多个监听器。 • 一个监听器可以对应多个事件源。
• 总结:
– 尽管awt的用户界面组件仍然可以用,但是建议最好不要使用。 – 现在编写Java图形界面程序,使用swing组件 + a用户界面编程中,必须使用事件处理。
– 程序的执行不是一条连续的线,而是很多独立的片段。 – 支持GUI的操作环境会不断监视事件,并把事件报告给正在运行的程序。这 是多任务的需要。 事件 事件 – 每个程序自己决定如何响应这些事件。 事件源
• 监听器类的实现:
– 一个监听器类实现多个组件的监听器对象。
• 通过类中的实例字段来区分不同的监听器对象。
– 一个监听器对象作为多个组件的监听器。
• 在事件的响应方法中通过事件源区分不同的事件。
见Example3.java redButton.addActionListener(new ActionListener() { //匿名内部类监听器 public void actionPerformed(ActionEvent e) { …… } }); 赵志崑
由实现接口改为 继承自适配器类, 从而不用再写另 外六个无用方法。 也可写成 匿名内部类
WindowListener WindowAdapter
见Example6.java addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { int result = JOptionPane.showConfirmDialog(……); if(result == JOptionPane.OK_OPTION)System.exit(0); } });
赵志崑
MyWindowAdapter
Java事件概述
• Java中所有事件都从java.util.EventObject类继承而来。 • 两个包中定义了事件:
– java.awt.event:awt的事件、监听器及适配器定义。 – java.swing.event:专门用于swing组件的附加事件。
监听器接口
赵志崑
事件监听器类的各种写法
• 监听器类的声明:
– – – – 将事件监听器作为单独的类。 将事件监听器作为组件的内部类。 直接使用已有类(通常是包含事件源的组件)作为事件监听器。 使用匿名内部类。
public class Example1 extends JFrame implements ActionListener { public void actionPerformed(ActionEvent e){…} }
赵志崑
事件监听器编写
见Example1.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Example1 extends JFrame { public Example1() { setSize(320,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = getContentPane(); JButton testButton = new JButton("Test"); testButton.addActionListener(new MyListener1()); contentPane.setLayout(new BorderLayout()); contentPane.add(testButton,BorderLayout.SOUTH); } } class MyListener1 implements ActionListener { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "ActionCommand:"+e.getActionCommand()); } }
见Example2.java class MyListener1 implements ActionListener { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "ActionCommand:"+e.getActionCommand()); } } myListener1 class MyListener2 implements ActionListener { public void actionPerformed(ActionEvent e) { String actionCommand = e.getActionCommand(); Color bkColor = null; if(actionCommand.equals("Red"))bkColor = new Color(255,0,0); else if(actionCommand.equals("Green"))bkColor = new Color(0,255,0); else if(actionCommand.equals("Blue"))bkColor = Color.blue; getContentPane().setBackground(bkColor); } } 赵志崑
相关文档
最新文档