第9章-图形界面程序设计ppt课件(全)_第1页
第9章-图形界面程序设计ppt课件(全)_第2页
第9章-图形界面程序设计ppt课件(全)_第3页
第9章-图形界面程序设计ppt课件(全)_第4页
第9章-图形界面程序设计ppt课件(全)_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、第9章 图形界面程序设计第9章 图形界面程序设计ppt课件(全)本章学习目标掌握Java语言中组件容器的基本概念掌握swing包中常用GUI组件的使用方法了解Java中的菜单技术了解Java中的各种对话框的使用方法掌握Java中布局管理器的基本概念了解常用的布局管理器的使用方法掌握Java中的事件处理原理了解常用事件的处理技术第9章 图形界面程序设计ppt课件(全)9.1 图形用户界面和Swing常用组件 任务1:了解AWT与Swing【任务内容】了解AWT与Swing【能力目标】了解图形用户界面的开发过程了解AWT包层次和特点掌握swing包层次和特点第9章 图形界面程序设计ppt课件(全)

2、GUI(Graphics User Interface),因为画面生动、操作简单,省去了字符界面用户必须记忆各种命令的麻烦,在Java中利用AWT和Swing进行GUI设计。设计和实现用户图形界面主要有两方面的工作: (1) 创建组成界面的各部分和元素,指定它们的属性和位置关系,根据具体需要排列它们,从而构成完整的图形用户界面的物理外观。 (2) 定义图形用户界面的事件和各界面元素对不同事件的响应,从而实现图形用户界面与用户的交互功能。第9章 图形界面程序设计ppt课件(全)AWT与Swing :AWT JDK 1.0与JDK 1.1版本下提供的GUI开发工具包,包含60多个组件类与接口,用以

3、创建基于窗口或Applet的GUI应用。Swing Java 2发布的功能更加完善的GUI组件类库,能够替代AWT,包含250多个更为丰富多样的类与接口,支持复杂GUI系统的开发。 第9章 图形界面程序设计ppt课件(全)AWT基本组件类之间的继承关系 第9章 图形界面程序设计ppt课件(全)Swing 在最新的Java2中, javax.swing包被列入Java的基础类库(JFC),其中定义的Swing GUI组件相对于java.awt包的各种GUI组件增加了许多功能。 作为第二代GUI开发工具集的Swing与第一代开发工具集AWT具有以下区别:Swing组件完全由纯Java语言实现,没有

4、本地代码,不依赖于具体平台的支持,功能更强大,具有更好的平台无关性,这种独立于本地平台的Swing组件被称为轻量级(Light Weight)组件。而AWT组件通过依赖于具体平台的本地对等组件类来实现,这些组件在它们自己的本地不透明窗口中绘制,由本地平台负责显示,因此不同的操作系统下显示出来的外观可能会有所不同,这种缺乏平台独立性,依赖于本地平台的AWT组件被称为重量级(Heavy Weight)组件。31Swing程序中可以指定GUI组件的Look and Feel,真正做到与平台无关;但AWT程序却做不到这点。32Swing组件提供了许多AWT组件无法实现的功能, 33Swing组件绝大多

5、数为轻量级的组件,这类组件的背景可以是透明的,透明的背景使其上显示的轻量级组件不仅仅被限制在矩形外框内;AWT组件都是重量级的组件,这类组件的背景是不透明的,其显示的范围被限制在矩形外框内。34Swing除具有与AWT原有组件类似的组件外,还增加了一个丰富的高层组件集合,集合中集成了诸如表格(JTable)、树(JTree)等组件。然而Swing并不能完全替代AWT,Swing建立在AWT的基础上,完全舍弃AWT不太可能。例如目前Swing使用的仍然是Java1.1的事件处理模型。此外,AWT组件与可运行于任何版本的JDK上,稳定性较高,与Swing组件相比,其运行速度较快35第9章 图形界面

6、程序设计ppt课件(全)Swing的体系结构: Swing的体系结构中采用了MVC设计模式。 MVC将应用程序分为三个功能既相互独立、又相互关联的对象 控制器(Controller)控制器用于处理外界的输入与事件,描述模型如何响应事件在模型发生变动时,模型会通知所有依赖于该模型的视图视图通过控制器响应事件的机制来更新自身,以反映模型的变动。 33 模型(Model)模型的功能是维护数据的逻辑表达,并提供访问数据的方法31 视图(View)视图是模型数据的可视化表达,用于图形化表达模型中数据的全集或子集的可视数据集,向用户提供数据的可视化版本32第9章 图形界面程序设计ppt课件(全)Swing

7、的组件类 Swing的GUI组件类有一个共同的基类JComponent,JComponent由AWT的容器类Container扩展而来。Swing的类分为两种类型:GUI类和非GUI类。GUI类是可视的,对应于Swing的GUI组件,它们由JComponent继承而来,因此被称为J类,这些类的类名首字母一律为J。Swing的许多GUI类与AWT的组件类是等价的,在命名形式一般上仅差一个字母J;即Swing组件类的名称是在AWT类名前加一个大写字母J。如与AWT的Button、Label、TextField类对应的Swing类的类名分别为:JButton、JLabel、JTextField。 S

8、wing的GUI组件类位于包javax.swing中,开发应用程序时,首先要导入该包,然后才能使用Swing的组件。非GUI类为GUI类提供服务,并执行一些相关的功能;它们只起支持作用,而不产生任何可视化的输出。非GUI类的典型例子是Swing的事件处理类,这些类位于包中。 第9章 图形界面程序设计ppt课件(全)Swing组件的事件处理机制与AWT的事件处理机制完全一样,Swing中完全可以使用包中的各种类进行事件处理,同时也可以使用为它专门定制的另一个事件处理包中的类来处理事件。但AWT组件只能使用前一个包中的事件类,而不允许使用后一个包中的事件类。 第9章 图形界面程序设计ppt课件(全

9、)常用的Swing组件类的层次结构:第9章 图形界面程序设计ppt课件(全)任务2:了解容器【任务内容】了解容器【能力目标】了解容器和一些Container类的常用方法Container类是所有容器最终的父类。容器中可以添加多个组件。在默认情况下,当组件被添加到容器中时,它们将按照加入的先后顺序存储在容器的内部数据结构中。9.1 图形用户界面和Swing常用组件 第9章 图形界面程序设计ppt课件(全)常用的Swing窗口容器组件包括:JFrame,JApplet,JDialog,JWindow等。组件不能直接在程序运行界面中显示,必须放置在容器(Container) 组件内才能呈现出来。容器

10、是一种特殊的组件,其特殊性在于容器的功能是用来容纳一般的组件对象与容器组件对象的,即容器除提供给其他组件作为安置场所外,其自身还可相互嵌套。第9章 图形界面程序设计ppt课件(全)容器作为特殊的组件,具有以下特征:容器有一定的空间范围与尺寸,容器一般是矩形的,有些组件可以显示出边界外框。容器有一定的位置坐标,该位置既可以显示容器的绝对位置表达,也可以相对于其他容器边界的相对位置表达。容器一般可以设定自己的背景颜色,还可对背景色设置透明度,并可将一幅图案加载到容器上作为特定背景。加载到容器内的GUI界面元素随着容器的打开与显示而同步显示;当容器隐藏或关闭时,这些界面元素也跟随着被隐藏或关闭。容器

11、组件可以相互嵌套,即可将一个或多具容器对象放置到其他容器对象中,从而构建更为丰富的界面层次结构。(6)JWindow,JFrame、JApplet及JDialog是唯一有资格作为顶级容器窗口的四类组件。第9章 图形界面程序设计ppt课件(全)任务3:JFrame的创建及使用【任务内容】编写综合范例,熟悉JFrame使用方法【能力目标】掌握JFrame构架掌握JFrame多种构造函数掌握JFrame常用函数【任务分析】参照API使用JFrame的构造函数产生出JFrame对象,通过对象即可对JFrame多种功能进行操作。案例:JFrameDemo01.java9.1 图形用户界面和Swing常用

12、组件 第9章 图形界面程序设计ppt课件(全)import ;import ;public class JFrameDemo01public static void main(String args)JFrame f = new JFrame() ; f.setTitle(第一个Swing窗体);f.setSize(300,200) ;/ 设置组件的大小 f.setLocation(300,200) ;/ 设置组件的显示位置 f.getContentPane().setBackground(Color.BLUE);/ 将背景设置成蓝色 f.setVisible(true) ;/ 让组件可见第9

13、章 图形界面程序设计ppt课件(全)任务4:JLable的创建及使用【任务内容】创建JLable,并使用JLable的特性【能力目标】掌握JLable的使用方法掌握JLable的特性掌握JLable的常用函数【任务分析】编写程序,在容器上展示JLable的功能,只需产生JLable对象,即可使用JLable的各项功能。案例:JLabelDemo .java9.1 图形用户界面和Swing常用组件 第9章 图形界面程序设计ppt课件(全)任务5:JButton的使用【任务内容】编写程序,掌握按钮的使用方法【能力目标】掌握按钮的使用方法掌握按钮状态改变的规则【任务分析】生成JButton对象,即可

14、使用该对象完成按钮的相关操作,但需注意,按钮需要容器支持。/JButtonDemo .java9.1 图形用户界面和Swing常用组件 第9章 图形界面程序设计ppt课件(全)任务6:JCheckBox的使用【任务内容】编写程序,使用JCheckBox实现复选框功能【能力目标】掌握JCheckBox的使用方法了解复选框的状态及属性【任务分析】本次任务也只需要生成JCheckBox对象即可对复选框进行相关操作,同样,需要先有容器的支持。/CheckBoxDemo .java9.1 图形用户界面和Swing常用组件 第9章 图形界面程序设计ppt课件(全)任务7:JRadioButton的使用【任

15、务内容】编写一段程序,实现单选功能【能力目标】掌握JRadioButton的使用方法掌握了解单选按钮的状态及属性【任务分析】该任务需要产生JRadioButton的对象即可对单选按钮进行控制,同时也需要容器组件进行支持。/ RadioButtonDemo .java9.1 图形用户界面和Swing常用组件 第9章 图形界面程序设计ppt课件(全)任务8:JComboBox的使用【任务内容】编写程序,实现组合框功能【能力目标】掌握JComboBox的使用方法了解组合框的状态及属性【任务分析】该任务需生成JComboBox对象,使用该对象即可使用组合框的各种功能,也需要容器组件支持。/ComboB

16、oxDemo .java9.1 图形用户界面和Swing常用组件 第9章 图形界面程序设计ppt课件(全)任务9:了解JScrollPane的使用【任务内容】了解JScrollPane的使用【能力目标】了解JScrollPane的概念和构造方法了解JScrollPane的一些常用方法 滚动条(Scroll Bar)是一种直观而简单的控制组件,可以用它来实现窗口的滚动。在Swing中,JScrollPane类用来实现滚动条。默认情况下,JScrollPane只在需要滚动条的时候才显示它们。9.1 图形用户界面和Swing常用组件 第9章 图形界面程序设计ppt课件(全)任务10:JTextFie

17、ld、JTextArea和JPasswordField的使用 【任务内容】编写一个综合实例,使用容器组件包含文本框、密码框及文本域【能力目标】掌握文本框、密码框及文本域的使用方法掌握多组件组合应用【任务分析】本任务使用多种组件组合,因此需对各个组件分别进行实例化,然后利用容器组件对其进行组合。/案例:多组件组合 ,TextDemo .java9.1 图形用户界面和Swing常用组件 第9章 图形界面程序设计ppt课件(全)9.2 布局管理器 任务11:了解布局管理器(Layout Manager)【任务内容】了解布局管理器【能力目标】理解布局管理器的概念和功能第9章 图形界面程序设计ppt课件

18、(全)AWT容器的布局策略 在Java的GUI界面设计中,布局控制是通过为容器设置布局编辑器来实现的。java.awt包中共定义了五种布局编辑类,每个布局编辑类对应一种布局策略,分别是FlowLayout,BorderLayout,CardLayout,GridLayout和GridBagLayout。容器对象创建成功后自动获取一个系统默认布局管理器。可用setLayout(newLayoutObject)方法为容器对象重新指定一个不同于默认的布局管理器;也可以使用setLayout(null)方法中止标准的布局管理器,从而让用户能够以手工方式设置组件的大小或位置。setLayout(newL

19、ayoutObject)方法中的参数应该是一个特定布局管理器类的实例对象。下面以对JFrame对象myFrame设定GridLayout类型的布局管理器为例。第9章 图形界面程序设计ppt课件(全)对setLayout()方法的使用格式加以说明:格式1:GridLayout appLayoutObj=new GridLayout(3,5); myFrame.setLayout(appLayoutObj);格式2:myFrame.setLayout(new GridLayout(3,5);不难看出,第二种格式省略了布局管理器对象引用变量的定义,是对第一种格式的简化处理,但这种情况下布局管理器对象

20、只能被应用一次,而在第一种格式中,可以通过布局管理器对象的引用变量,对多个容器对象设置同样的组件布局。 第9章 图形界面程序设计ppt课件(全)任务12:使用顺序布局管理器(FlowLayout)【任务内容】编写程序,在容器中使用顺序布局管理器,体会顺序布局管理器的特点【能力目标】掌握顺序布局管理器的使用方式【任务分析】本任务需要改变容器组件的默认布局管理模式,因此需要容器组件支持。/TestFlowLayout .java9.2 布局管理器 第9章 图形界面程序设计ppt课件(全)任务13:使用边界布局管理器(BorderLayout)【任务内容】编写程序,使用边界布局管理器,并体会边界布局

21、管理器的特点【能力目标】掌握边界布局管理器的使用方法【任务分析】本任务也需要容器组件予以支持,因此需对之前所学的容器组件有所认识。/TestBorderLayout .java9.2 布局管理器 第9章 图形界面程序设计ppt课件(全)任务13+1:网格布局管理器【任务内容】编写程序,使用网格布局管理器,并体会网格布局管理器的特点【能力目标】掌握网格布局管理器的使用方法【任务分析】本任务也需要容器组件予以支持,因此需对之前所学的容器组件有所认识。/TestGridLayout .java9.2 布局管理器 第9章 图形界面程序设计ppt课件(全)任务14:手工布局的使用方法【任务内容】编写应用

22、程序,尝试使用手工布局来管理组件【能力目标】掌握手工布局的使用方法【任务分析】本任务在于让学生脱离布局管理器的框架,按照自己的意愿进行布局。当然,还是需要容器组件进行支持。/TestBlankLayout .java9.2 布局管理器 第9章 图形界面程序设计ppt课件(全)任务15:使用对话框【任务内容】了解对话框的概念【能力目标】理解对话框的分类 (1)对话框必须依附于某个窗口并由这个窗口负责弹出,如果该窗口关闭了,对话框也随着关闭。 (2)对话框有模式对话框(Modal Dialog)和非模式对话框(Non-modal Dialog)两种 。9.3 对话框和菜单第9章 图形界面程序设计p

23、pt课件(全)任务16:标准对话框的使用【任务内容】标准对话框的使用【能力目标】掌握生成各种标准对话框的静态方法 在Swing中,可以利用类中的各个静态方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能。 9.3 对话框和菜单第9章 图形界面程序设计ppt课件(全)(1)显示一个确认对话框。核心代码如下:JOptionPane.showConfirmDialog(null,chooseone,choose one, JOptionPane.YES_NO_OPTION);(2)显示一个输入文本对话框。核心代码如下: String strInputValue = JOp

24、tionPane.showInputDialog(Please input a value);(3)显示一个消息对话框。核心代码如下: JOptionPane.showMessageDialog(null,alert,alert, JOptionPane.ERROR_MESSAGE);(4)显示一个选择性的对话框。核心代码如下:Object options = OK, CANCEL ;JOptionPane.showOptionDialog(null, Click OK to continue, Warning,JOptionPane.DEFAULT_OPTION, JOptionPane.W

25、ARNING_MESSAGE,null, options, options1);第9章 图形界面程序设计ppt课件(全)任务17:自定义对话框的使用【任务内容】编写程序,实现使用自定义对话框的各种功能,并对自定义对话框的应用领域有所了解。【能力目标】掌握自定义对话框的使用方法了解自定义对话框的使用范围【任务分析】本任务使用自定义对话框。所谓自定义,即指对话框的功能及组件由用户自定义,因此,在制作中更偏重于程序人员自身设计能力。/DialogDemo .java9.3 对话框和菜单第9章 图形界面程序设计ppt课件(全)任务18:了解菜单【任务内容】了解菜单【能力目标】了解菜单的概念及其各种组件

26、 菜单是图形用户界面的重要组成部分,由菜单栏(Menu Bar)、菜单(Menu)、菜单项(Menu Item)等组件组成。菜单的设计思路就是一个菜单组装的过程:把菜单添加到菜单栏上,把菜单项添加到菜单中。 在Swing中,菜单栏由JMenuBar类实现,菜单由JMenu类实现,菜单项由JMenuItem实现。 9.3 对话框和菜单第9章 图形界面程序设计ppt课件(全)任务19:了解JMenuBar【任务内容】了解JMenuBar【能力目标】了解JMenuBar的功能和构造方法了解JMenuBar的常用方法 菜单栏是菜单的容器,菜单必须添加到菜单栏中。在Swing中,JMenuBar类用于实

27、现菜单栏。可以用setJMenuBar()方法将一个菜单栏设置到容器中,但前提条件是该容器必须支持setJMenuBar()方法。也就是说,不是所有容器都支持菜单栏 9.3 对话框和菜单第9章 图形界面程序设计ppt课件(全)任务20:了解JMenu【任务内容】了解JMenu【能力目标】了解JMenu的功能和构造方法熟悉JMenu的常用方法在Swing中,JMenu类用于实现菜单。 9.3 对话框和菜单第9章 图形界面程序设计ppt课件(全)任务21:了解JMenuItem【任务内容】了解JMenuItem【能力目标】了解JMenuItem的功能和构造方法熟悉JMenuItem的常用方法(1)

28、菜单项是菜单中的一个GUI组件,在选定它时,会产生一个动作事件(action event)。菜单项可以用于启动某个动作,或作为一个为用户提供更多菜单选项的子菜单。在Swing中,JMenuItem类用于实现菜单项。 (2)Javax.swing. JMenuItem类的常用方法是void setEnabled(boolean b),用于设置该菜单项是否可用,b为true则该菜单项可用,为false则禁用。 9.3 对话框和菜单第9章 图形界面程序设计ppt课件(全)任务22:了解JCheckBoxMenuItem【任务内容】了解JCheckBoxMenuItem【能力目标】了解JCheckBo

29、xMenuItem的功能和构造方法熟悉JCheckBoxMenuItem的常用方法复选框菜单项类似于复选框,在一组相关的复选框菜单项中,用户可选择其中的一个或多个,它们之间并不排斥。在Swing中,JCheckBoxMenuItem类用于实现复选框菜单项,它是JMenuItem类的子类。 9.3 对话框和菜单第9章 图形界面程序设计ppt课件(全)任务23:菜单综合练习【任务内容】编写程序,将之前学习的菜单及各级菜单组件加以综合应用【能力目标】掌握菜单及菜单组件的使用方法掌握菜单各级组件的组合规律【任务分析】本任务为综合应用任务,因此需要对之前所学的知识融会贯通;组件产生对象后需要对其进行恰当

30、的组合。/ SimpleMenu .java9.3 对话框和菜单第9章 图形界面程序设计ppt课件(全)任务24:了解事件处理机制【任务内容】了解事件处理机制【能力目标】熟悉事件处理机制的原理熟悉事件源(Event Source)、事件对象(Event Object)和事件监听器的概念和功能了解事件模型的概念和分类9.4 事件处理第9章 图形界面程序设计ppt课件(全) 一旦程序具备事件处理的能力,用户就可以通过点击按钮,或执行特定菜单命令等操作,向应用程序发送相关的消息;程序通过事件监听器对象,捕获到用户激发的消息,并对此做出积极响应,执行相关的事件处理方法,达到完成预定任务的目的。第9章

31、图形界面程序设计ppt课件(全)import java.awt.*;import .*; /引入所有的事件类class EventDemo01 extends Frame /应用类的构造方法 public EventDemo01(String title) super(title); /用参数为窗体设置标题 CloseHandler handler=new CloseHandler(); /定义窗体事件的监听器对象 this.addWindowListener(handler); /为当前窗体注册监听器对象 this.setSize(300,200); this.setBackground(C

32、olor.BLUE); this.setVisible(true); /主方法中生成窗体的实例对象 public static void main(String args) new EventDemo01(Frame with Event-Handling); /定义嵌套的内部类CloseHandler,该类实现关闭窗口的功能 class CloseHandler extends WindowAdapter /内部类由窗口适配器类派生 public void windowClosing(WindowEvent e) /处理关闭窗口事件的方法 System.exit(0); /终止当前进程,退回

33、到系统状态 第9章 图形界面程序设计ppt课件(全)在上例中,Java将事件处理机制分为三个部分:事件源(Event Source)、事件对象(Event Object)和事件监听器(Event Listener) 在事件处理过程中的一个重要问题是:系统如何把事件交给事件处理程序?事件发生后,系统把事件传递给事件处理程序的方式称为事件模型(Event Model)。目前Java中有两种基本的事件模型:一种称为层次型事件模型;另一种称为委托事件模型。 第9章 图形界面程序设计ppt课件(全)任务25:掌握层次型事件模型【任务内容】掌握层次型事件模型【能力目标】了解层次型事件模型的事件传递的基本方

34、法了解层次型事件模型的优缺点9.4 事件处理第9章 图形界面程序设计ppt课件(全)层次型事件模型是从Java的JDK1.0开始采用的,但在JDK1.1以后已不推荐使用。它是一种基于容器的。它的事件传递的基本方法是:当系统监听到一个事件后,首先传递给直接相关的组件,该组件可以对事件进行处理,也可以不处理;如果组件没有对事件进行处理,则向上传递给组件所在的容器。同样,该容器可以对事件进行处理,也可以不处理。依此类推,直到顶层容器。这种事件模型存在如下缺点: (1) 事件只能由产生这个事件的组件或包含这个组件的容器处理。这违反了面向对象编程中的功能应包含在业务处理类中的原则,这种反应功能的业务往往

35、不是事件源中的成员。 (2) 该模型中,大量的资源浪费在处理不相关的事件上。这是因为事件会沿容器层次传递,会使上层容器处理一些不相关的事件。 (3) 为了处理事件,必须创建一个庞大的handleEvent()方法。 第9章 图形界面程序设计ppt课件(全)任务26:掌握委托事件模型【任务内容】掌握委托事件模型【能力目标】熟悉委托事件模型的事件传递的基本方法了解委托事件模型的优点9.4 事件处理第9章 图形界面程序设计ppt课件(全)委托事件模型是Java语言JDK1.1以后采用的处理模型。它的基本传递方法是:事件的传递由事件监听器进行管理。任何事件处理程序必须首先向事件监听器注册。这样,当系统监听到事件后,就把事件的传递工作委托给事件监听器来完成。事件监听器通过分析事件的属性信息,把事件交给已注册的相应事件处理器来处理。采用这种事件模型,事件处理程序可以从源组件对象中分离出来。这种处理模型具有如下优点: (1) 事件不会被

温馨提示

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

评论

0/150

提交评论