程序设计实用案例选讲(袁卫华)案例选讲第七次.ppt
《程序设计实用案例选讲(袁卫华)案例选讲第七次.ppt》由会员分享,可在线阅读,更多相关《程序设计实用案例选讲(袁卫华)案例选讲第七次.ppt(37页珍藏版)》请在三一办公上搜索。
1、Java图形编程(3),一、复习二、知识点讲解:1)Java的事件处理机制2)JOptionPane类的用法三、例题讲解四、小结和作业,一、复习,1.java.awt包常用的三种布局编辑类每个布局编辑类对应一种布局策略,分别是FlowLayout:流式布局管理器BorderLayout:边界布局管理器GridLayout:网格布局管理器,2.常用的控件组件,标签JLabel按钮JButton单行文本框JTextField多行文本区JTextArea,3)Java的事件处理机制,1.委托事件模型Java采用委托事件模型来进行事件处理,不同的事件由不同的监听者处理。事件源:产生事件的组件。鼠标,文
2、本框,按钮,选择项目,菜单项目等产生各种操作的对象。事件:即其所产生的动作状态。用户执行的动作:单击鼠标,按按钮,选择项目,单击菜单条,在文本框中按下回车键等。,一、复习,1.委托事件模型,3)Java的事件处理机制,一、复习,2.actionPerformed()方法的执行流程,1.当事件源上发生监听者可以处理的事件时,如鼠标单击JButton按钮或者在JTextField中敲回车键。,2.事件源JButton把这个事件(ActionEvent e)作为实际参数传递给事件监听器(类GuessNumber)中负责处理这类事件的方法(actionPerformed(ActionEvent e)3
3、.一旦有参数传递到actionPerformed方法中,这个方法就被系统自动调用执行,事件就按照程序代码中定义的流程得到了处理。,3)Java的事件处理机制,一、复习,知识点之四:事件监听器的三种形式1)主类自身是事件监听器2)定义一个内部类作为事件监听器3)定义一个匿名内部类作为事件监听器,二、知识点讲解,知识点之四:主类自身是事件监听器,二、知识点讲解,public class GuessNumber extends JFrame implements ActionListenerJButton okBtn;/确定按钮public void init()okBtn=new JButton(
4、确定);/定义JFrame中包含的组件okBtn.addActionListener(this);/注册动作事件 public void eventHandle()/触发动作事件时的处理过程public void actionPerformed(ActionEvent e)if(e.getSource()=okBtn)eventHandle();,知识点之四:定义一个内部类作为事件监听器,二、知识点讲解,在GuessNumber1类中定义一个内部类ActionEventHandler(自定义的类名)该内部类继承了动作事件监听器接口ActionListener该类中实现接口ActionListe
5、ner的方法actionPerformed()public class GuessNumber1 extends JFrame GuessNumber1()class ActionEventHandler implements ActionListener/内部类 public void actionPerformed(ActionEvent e)if(e.getSource()=okBtn)eventHandle();/该类的其他代码,知识点之四:定义一个内部类作为事件监听器,二、知识点讲解,public class GuessNumber1 extends JFrame GuessNumb
6、er1()okBtn.addActionListener(new ActionEventHandler();numJtf.addActionListener(new ActionEventHandler();class ActionEventHandler implements ActionListenerpublic void actionPerformed(ActionEvent e)/监听者是一个内部类ActionEventHandlerpublic void eventHandle()/触发动作事件时的处理过程,知识点之四:定义匿名内部类作为事件监听器,二、知识点讲解,public c
7、lass GuessNumber3 extends JFrame public void GuessNumber3(),okBtn.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)if(e.getSource()=okBtn)eventHandle();else if(e.getSource()=numJtf)eventHandle(););/使用匿名内部内注册动作事件,4.AWTEvent类体系结构,知识点之四:事件处理机制,二、知识点讲解,ActionEvent,TextEven
8、t,ItemtEvent,FocusEvent,MouseEvent,KeyEvent,WindowEvent,5.AWTEvent需要注意的问题包中定义了11个监听者接口,每个接口内部包含了若干处理相关事件的抽象方法。MouseEvent类有两个监听者接口与之相对应 MouseListener接口 具体事件包括:MOUSE_CLICKED,MOUSE_ENTERED,MOUSE_EXITED,MOUSE_PRESSED,MOUSE_RELEASEDMouseMotionListener接口 具体事件包括:MOUSE_DRAGGED,MOUSE_MOVED,知识点之四:事件处理机制,二、知识点
9、讲解,5.AWTEvent需要注意的问题一个事件类可能对应多个事件。如KeyEvent类对应三个具体事件KEY-PRESSED(键按下)KEY-RELEASED(键松开)KEY-TYPED(击键),知识点之四:事件处理机制,二、知识点讲解,6.事件监听器编程总结,实现事件监听器接口有三种途径:GuessNumber类自身是一个事件监听器设计一个内部类作为一个事件监听器匿名内部类实现事件监听器很多教材和参考书中建议为事件处理设计一个专门的内部类,而不要将一个已经存在的类转换为监听器。,二、知识点讲解,知识点之四:事件处理机制,知识点之五:JOptionPane类的用法,创建简单对话框,这个对话框
10、将位于parent组件的中央,如果parent为null,对话框将显示在屏幕的中央。Java中创建简单对话框不用JDialog类,而用类JOptionPane的静态方法即可。需要提供对话框需要的参数。简单对话框有4种,方法名的形式都是showXXXDialog。消息框showMessageDialog的用法:JOptionPane.showMessageDialog(所属Frame,消息本身,对话框标题,图形标志常量)如GuessNumber.java中的eventHandle()方法:,二、知识点讲解,public void eventHandle()tryuserInt=Integer.p
11、arseInt(numJtf.getText().trim();catch(NumberFormatException ex)JOptionPane.showMessageDialog(this,请将您猜得的整数输入到文本框中!);numJtf.setText();numJtf.requestFocus();,二、知识点讲解,知识点之五:JOptionPane类的用法,问题JOptionPane.showMessageDialog(null,请将您猜得的整数输入到文本框中!);JOptionPane.showMessageDialog(this,请将您猜得的整数输入到文本框中!);上面两条语句
12、的执行结果有什么区别?,二、知识点讲解,知识点之五:JOptionPane类的用法,4)JFrame组件之JCheckBox,复选框JCheckBoxJCheckBox cb1=new JCheckBox(Check Box 1);JCheckBox cb2=new JCheckBox(Check Box 2);JCheckBox cb3=new JCheckBox(Check Box 3);每个复选框有两种状态:选中状态和未选中状态。常用方法1)getState():返回用户在复选框所做的选择,如果复选框被选中,该方法返回值为true;如果复选框未被选中,该方法返回值为false。2)set
13、State():设置复选框。bold.setState(true);设置bold为选中状态。,二、知识点讲解,知识点之六:JFrame组件之JCheckBox,例题-CheckBoxes.java读程序,回答问题:程序的运行界面是什么样子的?JCheckBox组件可以触发什么事件?组件向相应的事件监听器进行注册的时候采用的是三种途径中的哪种方法?类中定义了一个JTextArea组件t,JTextArea t=new JTextArea(6,15);这个组件在哪个方法中被使用了,如何在JTextArea中当前显示的文本末尾添加一行文本?如何给一个JTextArea组件添加滚动条面板?isSele
14、cted()方法的功能是什么?,二、知识点讲解,例题-CheckBoxes.java读程序,回答问题:,CheckBoxes()cb1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)trace(1,cb1););setLayout(new FlowLayout();JScrollPane jScrollPane=new JScrollPane(t);add(jScrollPane);/add(new JScrollPane(t);add(cb1);add(cb2);add(cb3)
15、;,二、知识点讲解,知识点之六:JFrame组件之JCheckBox,例题-CheckBoxes.java读程序,回答问题:,public void trace(String b,JCheckBox cb)if(cb.isSelected()t.append(Box+b+Setn);elset.append(Box+b+Clearedn);,二、知识点讲解,知识点之六:JFrame组件之JCheckBox,知识点之六:JFrame组件之单选按钮JRadioButton,创建单选按钮对象单选按钮组组件由一组互斥的按钮组成,同一时刻只能有一个按钮处于选中状态。RadioButtons()JRadi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 实用 案例 袁卫华 第七
链接地址:https://www.31ppt.com/p-6011244.html