第9章 GUI教学设计.docx

上传人:b****7 文档编号:10420264 上传时间:2023-02-11 格式:DOCX 页数:16 大小:116.29KB
下载 相关 举报
第9章 GUI教学设计.docx_第1页
第1页 / 共16页
第9章 GUI教学设计.docx_第2页
第2页 / 共16页
第9章 GUI教学设计.docx_第3页
第3页 / 共16页
第9章 GUI教学设计.docx_第4页
第4页 / 共16页
第9章 GUI教学设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

第9章 GUI教学设计.docx

《第9章 GUI教学设计.docx》由会员分享,可在线阅读,更多相关《第9章 GUI教学设计.docx(16页珍藏版)》请在冰豆网上搜索。

第9章 GUI教学设计.docx

第9章GUI教学设计

传智播客

《Java基础入门》

教学设计

 

课程名称:

Java基础入门

授课年级:

2014年级

授课学期:

2014学年第一学期

教师姓名:

某某老师

 

2014年02月09日

课题名称

第9章GUI

计划学时

6课时

内容分析

GUI全称是GraphicalUserInterface,就是应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其它各种图形界面元素。

Java中针对GUI设计提供了丰富的类库,这些类分别位于java.awt和javax.swing包中。

本章针对AWT和Swing进行详细的讲解。

教学目标及基本要求

要求学生了解GUI开发的相关原理和技巧,掌握AWT事件处理、布局管理器、AWT绘图,熟悉Swing组件的使用。

重点及措施

教学重点:

AWT事件处理、布局管理器、Swing组件的使用

难点及措施

教学难点:

AWT事件处理、布局管理器、Swing组件的使用

教学方式

教学采用教师课堂讲授为主,使用教学PPT讲解

第一课时

(AWT概述、事件处理机制、事件适配器、用匿名内部类实现事件监听事件处理)

AWT概述

✧AWT组成

AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界面的组件。

在JDK中针对每个组件都提供了对应的Java类,如下图所示:

✧Window

Window类是不依赖其它容器而独立存在的容器,它有两个子类,分别是Frame类和Dialog类。

如下图所示:

Frame示例Dialog示例

✧Panel

Pane容器只能存在其它容器(Window或其子类)中,一个Panel对象代表了一个长方形的区域,在这个区域中可以容纳其它组件,下图是一个Panel组件:

事件处理机制

事件处理机制专门用于响应用户的操作,在学习如何使用AWT事件处理机制之前,首先介绍几个比较重要的概念,具体如下所示:

●事件对象(Event):

封装了GUI组件上发生的特定事件。

●事件源(组件):

事件发生的场所,通常就是产生事件的组件。

●监听器(Listener):

负责监听事件源上发生的事件,并对各种事件做

出响应处理的对象(对象中包含事件处理器)。

●事件处理器:

监听器对象对接收的事件对象进行相应处理的方法。

事件适配器

JDK提供了一些适配器类,它们是监听器接口的默认实现类,这些实现类中实现了接口的所有方法。

程序可以通过继承适配器类来达到实现监听器接口的目的。

例如,定义一个继承适配器类WindowAdapter的类MyWindowAdapter,如果要实现关闭窗口的功能,需要对windowClosing()方法进行重写。

用匿名内部类实现事件处理

实际开发中,经常通过匿名内部类来创建事件监听器对象,针对所发生的事件进行处理。

例如,为窗口添加一个具有点击事件的按钮,该按钮用于退出程序,具体的实现代码如下所示:

importjava.awt.*;

importjava.awt.event.*;

publicclassExample04{

publicstaticvoidmain(String[]args){

Framef=newFrame("我的窗体!

");

f.setSize(400,300);

f.setLocation(300,200);

f.setVisible(true);

Buttonbtn=newButton("EXIT");//创建按钮组件对象

f.add(btn);//把按钮对象加载到窗口上

//用内部类的方式为按钮组件注册监听器

btn.addMouseListener(newMouseAdapter(){

publicvoidmouseClicked(MouseEvente){

System.exit(0);

}

});

}

}

当按钮被点击时,会把点击事件作为对象传递给事件监听器,作出退出程序的处理。

第二课时

(窗体事件、鼠标事件、键盘事件和动作事件、布局管理器)

窗体事件

当对窗体进行操作时,比如窗体的打开、关闭、激活、停用等,这些动作都属于窗体事件,JDK中提供了一个类WindowEvent用于表示这些窗体事件。

鼠标事件

在图形用户界面中,用户会经常通过鼠标来进行选择、切换界面等操作,

这些操作被定义为鼠标事件,其中包括鼠标按下、鼠标松开、鼠标单击等。

鼠标事件使用MouseEvent类表示,处理鼠标事件需要通过实现MouseListener接口定义监听器,也可以继承适配器MouseAdapter类来实现。

键盘事件

例如键盘按下、释放等,这些操作被定义为键盘事件。

键盘事件使用KeyEvent类表示,处理键盘事件的监听器对象需要实现KeyListener接口或者继承KeyAdapter类。

动作事件

动作事件只是表示一个动作发生了,不需要关心使用哪种方式对文件进行关闭,只要是对关闭按钮进行操作,即触发了动作事件。

动作事件用ActionEvent类表示,处理ActionEvent事件的监听器对象需要实现ActionListener接口。

布局管理器

组件不能单独存在,必须放置于容器当中,而组件在容器中的位置和尺寸是由布局管理器来决定的。

每个容器在创建时都会使用一种默认的布局管理器,在程序中可以通过调用容器对象的setLayout()方法设置布局管理器,通过布局管理器来自动进行组件的布局管理。

✧FlowLayout

FlowLayout(流式布局管理器)下,容器会将组件按照添加顺序从左向右放置。

到达边界时,会自动将组件放到下一行的开始位置。

FlowLayout有三个构造方法,具体如下:

方法声明

功能描述

FlowLayout()

组件默认居中对齐,水平、垂直间距为5个单位

FlowLayout(intalign)

指定组件的对齐方式,水平、垂直间距为5个单位

FlowLayout(intalign,inthgap,intvgap)

指定组件的对齐方式和水平、垂直间距

下列是一个FlowLayout布局管理器的示例:

✧BorderLayout

BorderLayout(边界布局管理器)将容器划分为五个区域,分别是东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、中(CENTER)。

BorderLayout布局的效果如下图所示。

✧GridLayout

GridLayout(网格布局管理器)使用纵横线将容器分成n行m列大小相等的网格,每个网格中放置一个组件。

✧GridBagLayout

GridBagLayout(网格包布局管理器)与GridLayout布局管理器类似,不同的是,它允许网格中的组件大小各不相同,而且允许一个组件跨越一个或者多个网格。

使用GridBagLayout布局管理器的关键在于GridBagConstraints对象,它是控制容器中每个组件布局的核心类。

GridBagConstraints的常用属性如下所示:

●gridx和gridy:

用于设置组件左上角所在网格的横向和纵向索引。

●gridwidth和gridheight:

用于设置组件横向、纵向跨越几个网格。

●fill:

用于设置是否及如何改变组件大小。

●weightx和weighty:

设置组件在容器中的水平方向和垂直方向的权重。

需要注意的是,如果希望组件的大小随着容器的增大而增大,必须同时设置GridBagConstraints对象的fill属性和weightx、weighty属性。

✧CardLayout

卡片布局管理器(CardLayout)将界面看做一系列卡片,在任何时候只有其中一张卡片是可见的,这张卡片占据容器的整个区域。

第三课时

(AWT绘图、JFrame、JDialog和中间容器)

AWT绘图

✧Graphics类

在java.awt包中专门提供了一个Graphics类,它相当于一个抽象的画笔,

其中提供了各种绘制图形的方法,使用Graphics类的方法就可以完成在组件上绘制图形。

Graphics的常用方法如下所示:

●setColor()用于指定上下文颜色,方法中接收一个Color类型的参数。

●setFont()用于指定上下文字体,方法中接收一个Font类型的参数。

●drawRect()和drawOval()方法用于绘制矩形和椭圆形的边框,

●fillRect()和fillOval()用于使用当前颜色填充绘制完成的矩形和椭圆形。

●drawString()用于绘制一段文本,第一个参数str表示绘制的文本内

容,第二个和第三个参数x、y为绘制文本的左下角坐标。

Swing简介

大部分的Swing组件都是JComponent类的直接或者间接子类,而JComponent类是AWT中java.awt.Container的子类,接下来通过下图来描述AWT和Swing大部分组件的关联关系:

JFrame

JFrame是一个独立存在的顶级窗口,不能放置在其它容器之中,Jframe

支持通用窗口所有的基本功能,例如窗口最小化、设定窗口大小等等。

通过一个案例演示JFrame的效果:

publicExample15(){

this.setTitle("JFrameTest");

this.setSize(200,300);

//定义一个按钮组件

JButtonbt=newJButton("按钮");

//设置流式布局管理器

this.setLayout(newFlowLayout());

//添加按钮组件

this.add(bt);

//设置点击关闭按钮时的默认操作

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

运行结果:

JFrame类和Frame类最大的区别在于,JFrame类提供了关闭窗口的功能。

JDialog

JDialog对话框可分为两种:

模态对话框和非模态对话框。

所谓模态对话

框是指用户需要等到处理完对话框后才能继续与其它窗口交互,而非模态对话框允许用户在处理对话框的同时与其它窗口交互。

Jdialog常用的构造方法如下所示:

方法声明

功能描述

JDialog(Frameowner)

创建非模态的对话框

JDialog(Frameowner,Stringtitle)

创建具有指定标题的非模态对话框

JDialog(Frameowner,booleanmodal)

创建一个有指定模式的无标题对话框

中间容器

中间容器不能单独存在,只能放置在顶级窗口中。

常见的中间容器有两种:

●Jpanel:

它是一个无边框,不能被移动、放大、缩小或者关闭的面板,它的默认布局管理器是FlowLayout。

也可以使用JPanel带参数的构造函数或者它的setLayout()方法为其制定布局管理器。

●JscrollPane:

JScrollPane是一个带有滚动条的面板容器,而且这个面板只能添加一个组件,如果想往JScrollPane面板中添加多个组件,应该先将组件添加到JPanel中,然后将JPanel添加到JScrollPane中。

第四课时

(文本组件、按钮组件、JcomboBox、菜单组件)

文本组件

✧JTextComponent

文本组件用于接收用户输入的信息或向用户展示信息,其中包括文本框(JTextField)、文本域(JTextArea)等,它们都有一个共同父类JtextComponent。

JtextComponent提供了文本组件常用的方法,如下表所示:

方法描述

功能说明

StringStringgetText()

返回文本组件中所有的文本内容

StringgetSelectedText()

返回文本组件中选定的文本内容

voidselectAll()

在文本组件中选中所有内容

voidsetEditable()

设置文本组件为可编辑或不可编辑

voidsetText(Stringtext)

设置文本组件的内容

voidreplaceSelection(Stringcontent)

用给定的内容替换当前选定的内容

✧JTextField

JTextField称为文本框,它只能接收单行文本的输入。

创建一个文本框,示例代码如下:

inputField=newJTextField(20);

获取输入的文本信息,示例代码如下:

Stringcontent=inputField.getText();

将输入的文本域内容置为空,示例代码如下:

inputField.setText("");

✧JTextArea

JTextArea称为文本域,它能接收多行的文本的输入,使用JTextArea构造

方法创建对象时可以设定区域的行数、列数。

创建一个文本域,示例代码如下:

chatContent=newJTextArea(12,34);

设置文本域不可编辑,示例代码如下:

chatContent.setEditable(false);

向文本域添加内容,示例代码如下:

chatContent.append("向文本域添加内容");

按钮组件

✧JCheckBox

JCheckBox组件被称为复选框,它有选中(是)/未选中(非)两种状态。

如果复选框有多个,则用户可以选中其中一个或者多个。

创建JCheckBox对象的常用的构造方法如下表所示:

方法描述

功能说明

JCheckBox()

创建一个没有文本信息,初始状态未被选中的复选框

JCheckBox(Stringtext)

创建一个带有文本信息,初始状态未被选定的

复选框

JCheckBox(Stringtext,booleanselected)

创建一个带有文本信息,并指定初始状态(选中/未选中)的复选框。

✧JRadionButton

JRadioButton组件被称为单选按钮,与JCheckBox复选框不同的是,单选按钮只能选中一个。

创建JRadioButton对象常见的构造方法如下所示:

方法描述

功能说明

JRadioButton()

创建一个没有文本信息、初始状态未被选中的单选

JRadioButton(Stringtext)

创建一个带有文本信息、初始状态未被选定的单选框

JRadioButton(Stringtext,booleanselected)

创建一个具有文本信息,并指定初始状态(选中/未选中)的单选框

JComboBox

JComboBox组件被称为组合框或者下拉列表框,它将所有选项折叠收藏在

一起,默认显示的是第一个添加的选项。

当用户点击组合框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。

JComboBox常用方法有:

●voidaddItem(ObjectanObject):

为组合框添加选项

●voidinsertItemAt(ObjectanObject,intindex):

在指定的索引处插入选项

●ObjctgetItemAt(intindex):

返回指定索引处选项,第一个索引为0

●intgetItemCount():

返回组合框中选项的数目

●ObjectgetSelectedItem():

返回当前所选项

●voidremoveAllItems():

删除组合框中所有的选项

●voidremoveItem(Objectobject):

从组合框中删除指定选项

●voidremoveItemAt(intindex):

移除指定索引处的选项

●voidsetEditable(booleanaFlag):

设置组合框的选项是否可编辑,aFlag为true则可编辑,反之则不可编辑

菜单组件

✧下拉式菜单

创建下拉式菜单需要使用三个组件:

JMenuBar(菜单栏)、JMenu(菜单)和JMenuItem(菜单项),以记事本为例,这三个组件在菜单中对应的位置如下图所示:

(1)JMenuBar:

JMenuBar表示一个水平的菜单栏,它用来管理菜单,不参与同用户的交互式操作。

(2)JMenu:

JMenu表示一个菜单,它用来整合管理菜单项。

(3)JMenuItem:

JMenuItem表示一个菜单项,它是菜单系统中最基本的组件。

✧弹出式菜单

在Java的Swing组件中,弹出式菜单用JPopupMenu表示。

JpopupMenu

通过调用add()方法添加JMenuItem菜单项,但它默认是不可见的,如果想要显示出来,则必须调用它的show(Componentinvoker,intx,inty)方法。

第五课时

上机练习1总结,测试题)

1、总结本章内容

2、通过题库发放相关测试题,检查学生掌握情况。

3、上机练习:

针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的熟练程度。

上机一:

(考察知识点为AWT绘图)

请按照以下要求设计一个验证码窗口

要求如下:

1)创建一个类YzmPanel绘制验证码,验证码背景为灰色,背景上干扰点为蓝色,验证码为绿色。

2)验证码为四个整数阿拉伯数字。

3)将YzmPanel画板放在Frame窗口中央。

 

第六课时

上机练习2总结,测试题)

上机一(考察知识点为Swing组件的使用)

请按照以下要求设计一个用户聊天界面

要求如下:

1)用Swing组件设计界面,创建类Swing

2)创建一个文本域,一个文本框,一个按钮(发送),文本框前有描述文字:

“我要发言”。

3)文本域不可编辑,点击发送按钮可将文本框中的内容复制到文本域中

4)如果文本框中内容为空,提示“发送信息不能为空,请重新输入”

思考题和习题

见教材第9章后的习题

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1