第七章java程序设计教案.docx
《第七章java程序设计教案.docx》由会员分享,可在线阅读,更多相关《第七章java程序设计教案.docx(62页珍藏版)》请在冰豆网上搜索。
第七章java程序设计教案
课堂教学教案
教师姓名:
*****课程名称:
Java程序设计授课时数:
2第17次课
授课课题
7.1图形用户界面概述
7.2用户自定义成分
7.3Java的标准组件与事件处理
教学目标
第七章教学目标:
掌握Java标准组建和Swing组件的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等,掌握多种布局方式,掌握窗口菜单和快捷菜单设计方式。
理解委托事件处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。
熟悉在组件上绘图的方法。
教学重点
JAVA标准组件与事件处理
教学难点
事件处理方法
教学方法
案例教学,一体化课堂;板书+多媒体。
教学过程
详细教学过程参考附录14
课堂小结
本章开始接触图形界面,一开始学习需要记忆的知识很多,要求学生认真看书,必要的时候每节课上课之前抽出时间检查课本预习复习情况。
课外拓展
注意问题:
有哪些事件源,在它们身上可能发生什么事件?
如果要对事件做出响应,要将事件源注册给什么监听者?
监听者接口包含哪些方法?
各代表什么事件处理程序?
作业布置
课本第七章习题7-1,7-3.
补充习题
7-1什么是组件?
组件类与普通类有什么不同?
【答】组件是构成图形用户界面的基本成分和核心元素;组件是具有以下特性的对象:
运行时可见,能拥有并管理其他组件,在窗口中可操纵,可获得输入焦点等。
组件类Component是一个抽象类,是AWT组件类层次结构的根类,它提供对组件操作的通用方法。
7-2设计Windows应用程序的图形用户界面需要哪些基本知识?
【答】需要掌握Java组件的使用方法,理解委托事件处理模型,掌握多种布局方式。
7-3什么是容器组件?
它有什么特点?
Java提供了哪些容器组件?
【答】容器组件是一种能够容纳其他组件的特殊组件。
特点:
能容纳其他组件,并在其可视区域内显示这些组件。
Java提供了窗口(window)和面板(panel)两种容器。
7-4窗口与对话框有什么不同?
框架与面板有什么不同?
【答】对话框是窗口类的子类,对话框也是一种可移动的窗口,不能作为应用程序的主窗口,它依赖于一个框架窗口而存在,当框架窗口关闭时,对话框也关闭。
框架类是一种带标题栏并且可以改变大小的窗口;它是窗口类的子类,所以它可以独立存在,可被移动,可被最大化和最小化,有标题栏、边框、可添加菜单栏;而面板不能独立存在,必须包含在另一个容器里,面板没有标题,没有边框,不可添加菜单栏。
7-5什么是事件?
什么是事件源?
事件处理程序写在哪里?
【答】事件是指一个状态的改变,或者一个活动的发生。
产生事件的组件称为事件源。
事件处理程序写在事件监听器接口中声明的方法中。
如:
单击事件的事件处理程序由ActionListener接口中的actionPerformed()方法实现。
7-6如何理解Windows应用程序的图形用户界面是事件驱动的?
【答】一个组件的多个事件之间,多个组件的多个事件之间,其事件处理方法的执行次序是有规律的:
1.不同组件的事件或同一组件的不同事件具有约定的执行次序。
2.各组件的事件处理方法是否执行以及执行次序,取决于用户操作。
3.在一个事件处理方法中,程序按照语句的书写次序顺序执行。
附录14
7.1图形用户界面概述
•1.图形用户界面的设计与实现
•使用图形界面GUI(GraphicsUserInterface)
•字符界面—采用命令行方式与用户交互。
•图形界面—用多种媒体显示信息,用直观、方便的GUI标准组件来接收命令。
•控制权在用户(用户要由操作的主动权)
•界面与操作的风格一致性。
•宽容(容错)性。
•简洁与美观并重。
•界面布局
•界面元素
•容器是用来组织其他界面成分和元素的单元。
•可以形成容器的层次,构筑复杂结构
•Window(Frame、Applet、Dialog)
•组件是图形用户界面的基本单位,里面不再包含其他的成分。
•GUI组件是图形用户界面标准化的结果。
•GUI组件的作用是完成与用户的交互。
•用户自定义成分
•文字、图形、图象…
•不能像标准组件一样被系统识别和承认,只起装饰作用。
•不能响应用户的动作,不具有交互功能。
7.2用户自定义成分
•Component类
可显示在屏幕上的图形对象,可与用户交互。
方法:
add(PopupMenu popup)加一弹出菜单
addFocusListener(FocusListener l)将发生在本组件上的事件注册给监听者,以进行事件处理。
setSize(int width,int height)设置组件尺寸
paint(Graphics g)重画组件
setFont(Font f)设置组件字体
setBackground(Color c)设置组件背景色
setForeground(Color c)设置组件前景色
•paint和repaint方法
某组件的paint()和update()为系统自动调用的有关图形绘制的方法,不可人为编程调用;但可编程重新定义其操作内容。
使用repaint()方法可以触发update()方法。
•Font类
java.awt.Font
设计字体显示效果(创建字体对象)
Fontfn=newFont(String字体,int风格,int字号);
字体:
TimesRoman,Courier,Arial等
风格:
三个常量
Font.PLAIN,Font.BOLD,Font.ITALIC
字号:
字的大小(磅数)
使用字体对象-如设置某组件当前使用的字体:
setFont(Fontfn)
获取组件当前使用的字体:
getFont()
•Color类
构造函数1(设置颜色)
Colorc=newColor(int red,int green,int blue)
范围:
0~255
newColor(200,200,200)
newColor(255,0,100)
构造函数2
Colorc=newColor(intrgb)
兰色:
0~7位绿色:
8~15位红色:
16~23位
颜色常量值
publicstaticfinalColorblack
Color.black,Color.blue,Color.gray,
Color.redColor.white…
7.3Java的标准组件与事件处理
lGUI(GraphicsUserInterface)是用图像的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便的向计算机系统发出指令、启动相关操作,并将系统运行的结果同样以图形的方式显式给用户的技术。
•GUI概述
•Java2SDK提供了两个API工具包用于创建GUI,分别是awt包和swing包;
•AWT(AbstractWindowToolkit)被打包为java.awt,称作“重量级组件包”;
•Swing被打包为javax.swing,称作“轻量级组件包”
•AWT包
•AbstractWindowsToolkit(抽象窗口工具)
•AWT类库中的各种操作是被定义为在一个并不存在的“抽象窗口”中进行的。
•抽取不同软硬件平台中所实现的窗口的公共特性。
•所设计的界面独立于具体的界面实现。
•提供与机器无关的基本GUI标准组件。
(后面将会详细介绍AWT组件)
•选择类组件:
单选按钮、复选框、下拉选单、列表框…
•文字处理类组件:
标签、文本框、编辑框…
•命令类组件:
按钮、工具栏、菜单…
•事件驱动编程方法
•事件驱动(EventDriven)编程方法是随着GUI风行而产生的一种程序设计方法;
•其基本思想是通过“事件--响应”对用户事件或系统事件进行处理响应;
•正常情况下,存在一个监听器监听事件的发生,一旦监听器监测到事件,即转入处理该事件;
•Java语言支持事件驱动模式,在Java2类库中java.awt.event包含了可监听的事件类型,还可自定义事件类型监听;
•在Java中,事件驱动是通过Listener-Handler机制实现。
•事件和事件处理
•每一个键盘或鼠标操作会引发一个系统预先定义好的事件,用户程序只需要编制代码定义每个特定事件发生时程序应做出何种响应即可。
这些代码会在它们对应的事件发生时由系统自动调用,这就是图形用户界面中事件和事件响应的基本原理。
•除了键盘和鼠标操作,系统的状态改变、标准图形界面元素等都可以引发事件,对这些事件分别定义处理代码。
•Java的事件处理机制中引入了委托事件模型,不同的事件由不同的监听者处理。
•
•Java的所有事件类和处理事件的监听者接口都定义在java.awt.event包中。
关于事件监听者放在第三次课的时候再详细介绍!
课堂教学教案
教师姓名:
课程名称:
Java程序设计授课时数:
2第15次课
授课课题
7.4标签、按钮与动作事件
7.5文本框、文本区域与文本事件
7.6单选按钮、复选框、列表框与选择事件
教学目标
掌握Java标准组建和Swing组件的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等。
教学重点
各种控件在实际问题中的使用
教学难点
动作触发事件
教学方法
案例教学,一体化课堂;板书+多媒体。
教学过程
详细教学过程参考附录15
课堂小结
本节课重点在于实例的使用,因为同学们在学习web程序设计中也谈到了类似的控件,学习起来比较轻松。
课外拓展
补充习题:
用户登录窗口。
importjava.awt.*;
publicclassLoginFrameextendsFrame
{
publicLoginFrame()
{super("用户登录");//设置框架窗口标题
this.setSize(200,120);//设置框架的尺寸
this.setLocation(300,240);//设置框架显示在屏幕的位置
this.setBackground(Color.lightGray);//设置框架的背景颜色
this.setLayout(newFlowLayout());//设置框架为流布局,居中
this.add(newLabel("userid"));//创建标签,添加到框架上
this.add(newTextField("user1",10));//创建文本行
this.add(newLabel("password"));
this.add(newTextField(10));//创建20列的文本行
this.add(newButton("Ok"));//创建按钮
this.add(newButton("Cancel"));
this.setVisible(true);//显示框架窗口,必须在添加组件后
}
publicstaticvoidmain(Stringarg[])
{newLoginFrame();
}}
作业布置
课本第七章习题7-7,7-10.
补充习题
7-8设计图形用户界面的Java应用程序,需要用到的组件分别在哪些包中?
事件分别在哪些包中?
【答】组件在java.awt包中,事件在java.awt.Event和javax.swing.Event包中。
7-9按钮组件能够注册哪些事件监听器?
文本行组件能够注册哪些事件监听器?
文本行和文本区组件能够响应的事件有什么不同?
【答】按钮组件能够注册的事件监听器有ActionListener、ComponentListener、ItemListener等。
文本行组件能够注册的事件监听器有ActionListener、ComponentListener、TextListener等。
文本行是单行文本编辑框,用于编辑一行字符串,文本区是一个多行文本编辑框,它的基本操作与文本行类似,增加的是滚动条的显示和操作。
7-13窗口上有哪些事件?
每种事件在什么时候被触发?
这些事件的触发次序是怎样的?
【答】窗口上的事件有:
windowOPend,windowActivated,windowDeactivated,windowIconified,windowDeiconified,windowClosing,windowClosed。
每种事件的触发分别在:
打开窗口、激活窗口、窗口失去焦点、窗口最小化、窗口恢复、关闭窗口时、关闭窗口后。
触发次序与前述书写顺序相同。
7-14Java有几种关闭窗口处理方式?
分别是怎样的?
分别适用于哪些窗口组件?
【答】Java有2种关闭窗口处理方式。
第一种是设置窗口关闭时隐藏方式的setDefaultCloseOperation()方法,第二种是写窗口关闭事件处理程序即实现WindowListener接口中的windowClosing()方法。
第一种适用于JFrame和JDialog等窗口组件,第二种适用于Frame和Dialog等窗口组件。
7-15Java的布局方式有什么特点?
Java提供了哪些布局方式?
【答】特点:
Java采用布局管理器对图形用户界面中的组件进行相对定位并自动改变组件大小,合理分布组件格局。
当窗口大小改变时,各组件自身的大小将随之改变,而组件之间的相对位置不变,这样组件一般不会被覆盖。
Java提供了FlowLayout、BorderLayout、GridLayout三种布局布局管理器类。
7-16复选框和单选按钮有什么不同?
分别用于什么场合?
在事件处理程序中,怎样知道哪个复选框或单选按钮是选中的?
【答】在同一组单选按钮中,任何时候最多只能有一个被选择,一旦选中一个单选按钮,则前一个选中的单选按钮会自动变为未选中状态。
而复选框可多个同时被选中,且每个复选框选中与否的状态改变,并不影响其他复选框的状态。
场合:
单选按钮用来显示一组互斥的选择,复选框用来显示一组不互斥的选择。
在事件处理程序中,用注册选择事件监听器的方法来判断复选框或单选按钮是否被选中。
说明文本框和标签之间的区别?
答:
文本框定义了一个单行条形文本区,可以输出任何基于文本的信息,也可以接受用户的输入,并有事件响应。
标签可以显示一行静态的文本,它只起信息说明作用,不接受用户的输入,无事件响应。
试列举Java中常用的基本控制组件。
如果有二到三种取值可能,采用哪种组件合适?
如果取值的可能大于5种,采用哪种组件合适?
答:
基本控制组件是图形用户界面的最小单位之一,它里面不再包含其他成分。
基本控制组件的作用是完成与用户的一次交互。
目前常用的基本控制组件有:
标签(Label)、文本编辑区(TextField、TextArea)、按钮(Button)、复选框(Checkbox)、单选按钮(CheckboxGroup、Checkbox)、下拉列表(List或Choice)。
如果这两到三种取值是互斥的话,采用单选按钮表示比较合适,否则采用复选按钮表示;如果5种以上的取值只能多选一的话,采用Choice下拉列表,否则采用List下拉列表。
什么是选择事件?
可能产生选择事件的GUI组件有哪些?
答:
选择事件是当选择项的选中状态发生变化时所引起的事件。
可能产生选择事件的GUI组件有下拉列表类(Choice)、列表类(List)复选按钮类(CheckBox)、检测盒菜单项(CheckboxMenuItem)
设计一个菜单的步骤是什么?
答:
设计菜单的步骤是:
⏹用MenuBar构造函数构造菜单栏对象。
⏹用Menu构造函数构造菜单对象。
⏹用MenuItem构造函数构造菜单项对象。
⏹用Menu类的add方法将菜单项加入菜单中。
⏹用MenuBar类的add方法将菜单加菜单栏中。
⏹用Frame类的setMenuBar方法将菜单栏加入窗口中。
5.有模式的对话框最突出的特点是什么?
如果一个对话框的目的在于警告或提醒用户(例如删除数据库记录的确认),这个对话框应该是有模式的还是无模式的?
答:
有模式对话框是指打开后必须作出响应的对话框。
如果一个对话框的目的在于警告或提醒用户,应该为有模式的对话框。
附录15
7.4标签,按钮与动作事件
1.标签(Label)
Labelprompt=newLabel(““);
Prompt.setText(““)
Prompt.getText()
不是事件源不引发事件
2.按钮(Button)
Buttonenter=newButton(““)
Enter.getLabel()//返回按钮标签字符串
Enter.setLabel(““) //设置按钮的标签字符串
按按钮引发事件:
ActionEvent
addActionListener() 注册
在actionPerformed()中用getSource获取引发事件的按钮对象引用
button.setActionCommand(“ll“)
textfield.setActionCommand(“dd“)
if(e.getActionCommand()==“ll“)
if(e.getActionCommand()==”dd”)
3.动作事件(ActionEvent)
ActionEvent只包含一个事件:
ACTION_PERFORMED,能够触发该事件的动作包含:
(1)点击按钮
(2)双击列表中的选项
(3)选择菜单项
(4)在文本框中输入回车
ActionEvent类的重要方法有:
(1)PublicStringgetActionCommand()返回由事件源.SetActionCommand()设置的命令名
按钮的缺省命令名是按钮的标签
(2)publicintgetModifiers()
返回ActionEvent类的静态常量:
ALT_MASK,CTRL_MASK,SHIFT_MAST,META_MASK
7.5文本框,文本区域与文本事件
1.文本事件(TextEvent)
只有一个事件TEXT_VALUE_CHANGED,删除,键入,改变内容引发事件
2.文本框与文本域(TextField与TextArea)
TextAreatextArea1=newTextArea(10,45);
TextFieldname=newTextField(““,8)
getText()
setText()
setEditable(false)//不可编辑
isEditable() //是否可编辑
setEchoChar(‘*’) //用*回显
事件监听:
textField1.addTextListener(this)
textField1.addActionListener(this)
事件响应
textValueChanged(TextEvente)
actionPerformed(ActionEvente)
7.6单,复选按钮,列表与选择事件
1.选择事件(ItemEvent)
ItemEvent类包含一个事件:
ITEMSTATE_CHANGED,引发该事件的动作包括:
(1)改变List对象选项的选中或不选中状态
(2)改变Choice对象选项的选中或不选中状态
(3)改变Checkbox对象的选中或不选中状态
(4)改变CheckboxMenuItem对象的选中或不选中状态
ItemEvent类的主要方法有:
(1)getItemSelectable()
(2)getItem()
(3)getStateChange():
ItemEvent.SELECTED,
ItemEvent.DESELECTED
2.复选按钮(Checkbox)
Checkboxbackg=newCheckbox(““)
Backg.setState(true)
事件响应:
backg.addItemListener()
itemStateChange(ItemEvente)
((Checkbox)e.getItemSelectable()).getState()
((Checkbox)e.getItemSelectable()).setState(false)
程序实例:
参考PPT
3.单选按钮组(CheckboxGroup)
(1)创建
style=newCheckboxGroup();
p=newCheckbox(“1”,true,style);
b=newCheckbox(“2”,false,style);
i=newCheckbox(“3”,false,style);
add(p);
add(b);
add(i);
(2)常用方法
(3)事件响应
ItemEvent类的ITEMSTATE_CHANGED事件
程序实例:
程序实例:
参考PPT
i
4.下拉列表(Choice)
(1)创建
Choicesize=newChoice();
size.add(“10”);
size.add(“14”);
size.add(“18”);
(2)常用方法
getSelectedIndex();
select(intindex);
select(Stringitem);
add(Stringitem);
insert(Stringitem,intindex);
remove(intindex);
remove(Stringitem);
(3)事件响应
ItemEvent类的选择事件
size.addItemListener();
程序实例:
程序实例:
参考PPT
5.列表(List)
(1)创建
(2)常用方法
(3)事件响应
单击:
ItemEvent类的选择事件
双击:
ActionEvent类的动作事件
程序实例:
程序实例:
参考PPT
课堂教学教案
教师姓名:
课程名称:
Java程序设计授课时数:
2第16次课
授课课题
7.7设计事件处理专用类
7.8滚动条与调整事件
7.9画布与鼠标、键盘事件
教学目标
理解委托事件处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。
教学重点
设计出能够响应事件的JAVA图形用户界面
教学难点
时间监听者接口的实现
教学方法
案例教学,一体化课堂;板书+多媒体。
教学过程
详细过程参考附录16
课堂小结
本节内容重点在于掌握监听接口的实现方法。
课外拓展
本节课内容量较大,不再扩展
作业布置
课本第七章习题7-13,7-14.
补充习题
7-10是否可以对一个组件注册多个事件监听器?
【答】可以。
如果一个组件需要响应多个事件,则可以注册多个事件监听器。
7-11一个事件监听器是否可以处理多