GUI_教学设计.doc_第1页
GUI_教学设计.doc_第2页
GUI_教学设计.doc_第3页
GUI_教学设计.doc_第4页
GUI_教学设计.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

博学谷让IT教学更简单,让IT学习更有效传智播客Java基础入门教学设计课程名称: Java基础入门 授课年级: 2014年级 授课学期: 2014学年第一学期教师姓名: 某某老师 2014年02月09日课题名称第9章 GUI计划学时6 课时内容分析GUI全称是Graphical User Interface,就是应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其它各种图形界面元素。Java中针对GUI设计提供了丰富的类库,这些类分别位于java.awt和javax.swing包中。本章针对AWT和Swing进行详细的讲解。教学目标及基本要求要求学生了解GUI开发的相关原理和技巧,掌握AWT事件处理、布局管理器、AWT绘图,熟悉Swing组件的使用。重点及措施教学重点: AWT事件处理、布局管理器、Swing组件的使用难点及措施教学难点:AWT事件处理、布局管理器、Swing组件的使用教学方式教学采用教师课堂讲授为主,使用教学PPT讲解教学过程第一课时(AWT概述、事件处理机制、事件适配器、用匿名内部类实现事件监听事件处理)l AWT概述 AWT组成AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界面的组件。在JDK中针对每个组件都提供了对应的Java类,如下图所示: Window Window类是不依赖其它容器而独立存在的容器,它有两个子类,分别是Frame类和Dialog类。如下图所示: Frame示例 Dialog示例 PanelPane容器只能存在其它容器(Window或其子类)中,一个Panel对象代表了一个长方形的区域,在这个区域中可以容纳其它组件,下图是一个Panel组件:l 事件处理机制事件处理机制专门用于响应用户的操作,在学习如何使用AWT事件处理机制之前,首先介绍几个比较重要的概念,具体如下所示:l 事件对象(Event):封装了GUI组件上发生的特定事件。l 事件源(组件):事件发生的场所,通常就是产生事件的组件。l 监听器(Listener):负责监听事件源上发生的事件,并对各种事件做出响应处理的对象(对象中包含事件处理器)。l 事件处理器:监听器对象对接收的事件对象进行相应处理的方法。l 事件适配器JDK提供了一些适配器类,它们是监听器接口的默认实现类,这些实现类中实现了接口的所有方法。程序可以通过继承适配器类来达到实现监听器接口的目的。例如,定义一个继承适配器类WindowAdapter的类MyWindowAdapter,如果要实现关闭窗口的功能,需要对windowClosing()方法进行重写。l 用匿名内部类实现事件处理实际开发中,经常通过匿名内部类来创建事件监听器对象,针对所发生的事件进行处理。例如,为窗口添加一个具有点击事件的按钮,该按钮用于退出程序,具体的实现代码如下所示:import java.awt.*;import java.awt.event.*;public class Example04 public static void main(String args) Frame f = new Frame(我的窗体!);f.setSize(400, 300);f.setLocation(300, 200);f.setVisible(true);Button btn = new Button(EXIT); / 创建按钮组件对象f.add(btn); / 把按钮对象加载到窗口上/ 用内部类的方式为按钮组件注册监听器btn.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) System.exit(0););当按钮被点击时,会把点击事件作为对象传递给事件监听器,作出退出程序的处理。第二课时(窗体事件、鼠标事件、键盘事件和动作事件、布局管理器)l 窗体事件当对窗体进行操作时,比如窗体的打开、关闭、激活、停用等,这些动作都属于窗体事件,JDK中提供了一个类WindowEvent用于表示这些窗体事件。l 鼠标事件在图形用户界面中,用户会经常通过鼠标来进行选择、切换界面等操作,这些操作被定义为鼠标事件,其中包括鼠标按下、鼠标松开、鼠标单击等。鼠标事件使用MouseEvent类表示,处理鼠标事件需要通过实现MouseListener接口定义监听器,也可以继承适配器MouseAdapter类来实现。l 键盘事件例如键盘按下、释放等,这些操作被定义为键盘事件。键盘事件使用KeyEvent类表示,处理键盘事件的监听器对象需要实现KeyListener接口或者继承KeyAdapter类。l 动作事件动作事件只是表示一个动作发生了,不需要关心使用哪种方式对文件进行关闭,只要是对关闭按钮进行操作,即触发了动作事件。动作事件用ActionEvent类表示,处理ActionEvent事件的监听器对象需要实现ActionListener接口。l 布局管理器组件不能单独存在,必须放置于容器当中,而组件在容器中的位置和尺寸是由布局管理器来决定的。每个容器在创建时都会使用一种默认的布局管理器,在程序中可以通过调用容器对象的setLayout()方法设置布局管理器,通过布局管理器来自动进行组件的布局管理。 FlowLayoutFlowLayout(流式布局管理器)下,容器会将组件按照添加顺序从左向右放置。到达边界时,会自动将组件放到下一行的开始位置。FlowLayout有三个构造方法,具体如下:方法声明功能描述FlowLayout()组件默认居中对齐,水平、垂直间距为5个单位FlowLayout(int align)指定组件的对齐方式,水平、垂直间距为5个单位FlowLayout(int align,int hgap,int vgap)指定组件的对齐方式和水平、垂直间距下列是一个FlowLayout布局管理器的示例: BorderLayoutBorderLayout(边界布局管理器)将容器划分为五个区域,分别是东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、中(CENTER)。BorderLayout布局的效果如下图所示。 GridLayoutGridLayout(网格布局管理器)使用纵横线将容器分成n行m列大小相等的网格,每个网格中放置一个组件。 GridBagLayoutGridBagLayout(网格包布局管理器)与GridLayout布局管理器类似,不同的是,它允许网格中的组件大小各不相同,而且允许一个组件跨越一个或者多个网格。使用GridBagLayout布局管理器的关键在于GridBagConstraints对象,它是控制容器中每个组件布局的核心类。GridBagConstraints的常用属性如下所示:l gridx和 gridy:用于设置组件左上角所在网格的横向和纵向索引。l gridwidth和gridheight:用于设置组件横向、纵向跨越几个网格。l fill:用于设置是否及如何改变组件大小。l weightx和weighty:设置组件在容器中的水平方向和垂直方向的权重。需要注意的是,如果希望组件的大小随着容器的增大而增大,必须同时设置GridBagConstraints对象的fill属性和weightx、weighty属性。 CardLayout卡片布局管理器(CardLayout)将界面看做一系列卡片,在任何时候只有其中一张卡片是可见的,这张卡片占据容器的整个区域。第三课时(AWT绘图、JFrame、JDialog和中间容器)l AWT绘图 Graphics类在java.awt包中专门提供了一个Graphics类,它相当于一个抽象的画笔,其中提供了各种绘制图形的方法,使用Graphics类的方法就可以完成在组件上绘制图形。Graphics的常用方法如下所示:l setColor()用于指定上下文颜色,方法中接收一个Color类型的参数。l setFont()用于指定上下文字体,方法中接收一个Font类型的参数。l drawRect()和drawOval()方法用于绘制矩形和椭圆形的边框,l fillRect()和fillOval()用于使用当前颜色填充绘制完成的矩形和椭圆形。l drawString()用于绘制一段文本,第一个参数str表示绘制的文本内 容,第二个和第三个参数x、y为绘制文本的左下角坐标。l Swing简介大部分的Swing组件都是JComponent类的直接或者间接子类,而JComponent类是AWT中java.awt.Container的子类,接下来通过下图来描述AWT和Swing大部分组件的关联关系:l JFrameJFrame是一个独立存在的顶级窗口,不能放置在其它容器之中,Jframe支持通用窗口所有的基本功能,例如窗口最小化、设定窗口大小等等。 通过一个案例演示JFrame的效果:public Example15() this.setTitle(JFrameTest); this.setSize(200, 300); / 定义一个按钮组件 JButton bt = new JButton(按钮); / 设置流式布局管理器 this.setLayout(new FlowLayout(); / 添加按钮组件 this.add(bt); / 设置点击关闭按钮时的默认操作 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); 运行结果:JFrame类和Frame类最大的区别在于,JFrame类提供了关闭窗口的功能。l JDialogJDialog对话框可分为两种:模态对话框和非模态对话框。所谓模态对话框是指用户需要等到处理完对话框后才能继续与其它窗口交互,而非模态对话框允许用户在处理对话框的同时与其它窗口交互。Jdialog常用的构造方法如下所示:方法声明功能描述JDialog(Frame owner)创建非模态的对话框JDialog(Frame owner,String title)创建具有指定标题的非模态对话框JDialog(Frameowner,boolean modal)创建一个有指定模式的无标题对话框l 中间容器中间容器不能单独存在,只能放置在顶级窗口中。常见的中间容器有两种:l Jpanel:它是一个无边框,不能被移动、放大、缩小或者关闭的面板,它的默认布局管理器是FlowLayout。也可以使用JPanel带参数的构造函数或者它的setLayout()方法为其制定布局管理器。l JscrollPane:JScrollPane是一个带有滚动条的面板容器,而且这个面板只能添加一个组件,如果想往JScrollPane面板中添加多个组件,应该先将组件添加到JPanel中,然后将JPanel添加到JScrollPane中。第四课时(文本组件、按钮组件、JcomboBox、菜单组件)l 文本组件 JTextComponent文本组件用于接收用户输入的信息或向用户展示信息,其中包括文本框(JTextField)、文本域(JTextArea)等,它们都有一个共同父类JtextComponent。JtextComponent提供了文本组件常用的方法,如下表所示:方法描述功能说明String String getText()返回文本组件中所有的文本内容String getSelectedText()返回文本组件中选定的文本内容void selectAll()在文本组件中选中所有内容void setEditable()设置文本组件为可编辑或不可编辑void setText(String text)设置文本组件的内容void replaceSelection(String content)用给定的内容替换当前选定的内容 JTextFieldJTextField称为文本框,它只能接收单行文本的输入。创建一个文本框,示例代码如下:inputField = new JTextField(20);获取输入的文本信息,示例代码如下:String content = inputField.getText();将输入的文本域内容置为空,示例代码如下:inputField.setText(); JTextAreaJTextArea称为文本域,它能接收多行的文本的输入,使用JTextArea构造方法创建对象时可以设定区域的行数、列数。 创建一个文本域,示例代码如下:chatContent = new JTextArea(12, 34);设置文本域不可编辑,示例代码如下:chatContent.setEditable(false);向文本域添加内容,示例代码如下:chatContent.append(向文本域添加内容);l 按钮组件 JCheckBoxJCheckBox组件被称为复选框,它有选中(是)/未选中(非)两种状态。如果复选框有多个,则用户可以选中其中一个或者多个。创建JCheckBox对象的常用的构造方法如下表所示:方法描述功能说明JCheckBox()创建一个没有文本信息,初始状态未被选中的复选框JCheckBox(String text)创建一个带有文本信息,初始状态未被选定的复选框JCheckBox(String text,boolean selected)创建一个带有文本信息,并指定初始状态(选中/未选中)的复选框。 JRadionButtonJRadioButton组件被称为单选按钮,与JCheckBox复选框不同的是,单选按钮只能选中一个。创建JRadioButton对象常见的构造方法如下所示:方法描述功能说明JRadioButton ()创建一个没有文本信息、初始状态未被选中的单选JRadioButton (String text)创建一个带有文本信息、初始状态未被选定的单选框JRadioButton (String text,boolean selected)创建一个具有文本信息,并指定初始状态(选中/未选中)的单选框l JComboBoxJComboBox组件被称为组合框或者下拉列表框,它将所有选项折叠收藏在一起,默认显示的是第一个添加的选项。当用户点击组合框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。JComboBox常用方法有:l void addItem(Object anObject):为组合框添加选项l void insertItemAt(Object anObject,int index):在指定的索引处插入选项l Objct getItemAt(int index):返回指定索引处选项,第一个索引为0l int getItemCount():返回组合框中选项的数目l Object getSelectedItem():返回当前所选项l void removeAllItems():删除组合框中所有的选项l void removeItem(Object object):从组合框中删除指定选项l void removeItemAt(int index):移除指定索引处的选项l void setEditable(boolean aFlag):设置组合框的选项是否可编辑,aFlag为true则可编辑,反之则不可编辑l 菜单组件 下拉式菜单创建下拉式菜单需要使用三个组件:JMenuBar(菜单栏)、JMenu(菜单)和JMenuItem(菜单项),以记事本为例,这三个组件在菜单中对应的位置如下图所示:(1)JMen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论