项目二GUI编程技术

上传人:沈*** 文档编号:228255797 上传时间:2023-08-21 格式:PPT 页数:68 大小:4.85MB
收藏 版权申诉 举报 下载
项目二GUI编程技术_第1页
第1页 / 共68页
项目二GUI编程技术_第2页
第2页 / 共68页
项目二GUI编程技术_第3页
第3页 / 共68页
资源描述:

《项目二GUI编程技术》由会员分享,可在线阅读,更多相关《项目二GUI编程技术(68页珍藏版)》请在装配图网上搜索。

1、衡衡阳阳技技师师学学院院信信 息息 技技 术术 系系项目二GUI编程技术 12023/7/31网网络络与与软软件件教教研研室室本章学习导航本章学习导航22023/7/31网网络络与与软软件件教教研研室室本章学习要点本章学习要点 Java GUI概述概述 常用容器常用容器 常用常用GUI组件组件 高级高级GUI组件组件 常用布局管理器常用布局管理器lJava事件处理事件处理教学课时:教学课时:16课时课时32023/7/31网网络络与与软软件件教教研研室室5.1 Java GUI概述 图形用户界面(Graphics User Interface,简称GUI)就是为应用程序提供一个图形化的界面,方

2、便用户和应用程序实现友好的交互。CUICUI和和GUIGUI42023/7/31网网络络与与软软件件教教研研室室5.1.1 JFC简介&5.1.2 AWT简介 lJFC(Java Foundation Classes,Java基础类)是一个图形框架 lAWT(Abstract Window Toolkit)是 Java 提供的建立图形用户界面GUI的工具集JFCJFC52023/7/31网网络络与与软软件件教教研研室室5.1.2 AWT简介 ljava.awt.Component类是许多组件类(如Button和Label)的父类,Component类中封装了组件通用的方法和属性,如图形的组件对

3、象、大小、显示位置、前景色和背景色、边界、可见性。ComponentComponent类常用方法类常用方法62023/7/31网网络络与与软软件件教教研研室室5.1.3 SWING简介 lSwing是Java语言在编写图形用户界面方面的新技术,Swing采用MVC(模型视图控制)设计范式,Swing可以使Java程序在同一个平台上运行时能够有不同外观以供用户选择。JFCJFC72023/7/31网网络络与与软软件件教教研研室室5.1.4 SWT简介 lSWT(Standard Widget Toolkit)最初是由IBM开发的一套用于Java图形用户界面系统,用来与Swing竞争。后来Ecli

4、pse组织为了开发Eclipse IDE环境编写的一组底层图形界面 API成了SWT的主要内容。SWTSWT简介简介(1)根据需要添加容器。(2)将组件添加到指定容器。(3)通过布局管理器对容器中的组件进行组织排列。(4)响应用户对组件的操作即事件的处理。JavaJava图形界面设计一般过程图形界面设计一般过程 82023/7/31网网络络与与软软件件教教研研室室5.1.5 Java图形界面设计一般过程 l组件是图形用户界面最基本的组成部分;l组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象;l组件不能独立显示出来,必须将组件放在一定的容器中才可以显示出来。组件组件l容器类Co

5、ntainer是Component的一个子类;l容器本身也是一个组件,具有组件的所有性质;l容器还具有放置其它组件和容器的功能。容器容器 l布局管理器用来管理组件放置在容器中的位置和大小;l每个容器都有一个布局管理器;l使用布局管理器可以使java生成的图形用户界面具有平台无关性;l布局管理器LayoutManager本身是一个接口,通常使用的是实现了该接口的类。布局管理器布局管理器 92023/7/31网网络络与与软软件件教教研研室室5.2.1 框架 l框架是图形用户界面最基本的部分,框架是带有标题和边界的顶层窗口,框架的大小包括边界指定的所有区域,框架的默认布局为 BorderLayout

6、。构造方法构造方法102023/7/31网网络络与与软软件件教教研研室室5.2.1 框架 常用方法常用方法【例5-1】创建简单JFrame(Demo5_1.java)112023/7/31网网络络与与软软件件教教研研室室5.2.2 面板 l面板是最简单的容器类,应用程序可以将其他组件放在面板提供的空间内,这些组件也可以包括其他面板。与框架不同,面板是一种透明透明的容器,既没有标题,也没有边框,就像一块透明的玻璃。l面板不能不能作为最外层的容器单独存在单独存在,它首先必须作为一个组件放置到其它容器(一般为框架)中,然后把组件添加到它里面。JPanelJPanel【例5-2】应用JPanel分割J

7、Frame(Demo5_2.java)122023/7/31网网络络与与软软件件教教研研室室5.2.3 小程序 lJava Applet是用Java 语言编写的一些小应用程序,这些程序直接嵌入到页面中,由支持Java的浏览器(IE或Nescape)解释执行。lApplet的下载和执行由浏览器自动完成。lApplet支持客户端与Web服务器的交互,具有动态执行能力。lApplet的执行速度不受网络速度的限制。AppletApplet132023/7/31网网络络与与软软件件教教研研室室5.2.4 Swing容器 lSwing中的容器除了上述的JFrame、JPanel和JApplet外,还包括其

8、它的容器,这些容器的名称和功能见表5-5。SwingSwing容器容器142023/7/31网网络络与与软软件件教教研研室室(1)容器是一个抽象的概念,请借助于生活中的实例进行理解。(2)可以通过阅读英文的API文档或汉化的API文档了解常用GUI类。操作提示操作提示(1)创建一个框架frmMain,名称为“框架演示”,大小为400X300,位置为(200,200)。(2)创建四个面板pnlMain、pnlFirst、pnlSecond和pnlThird,将pnlMain设置为框架的内容面板,然后将pnlFirst、pnlSecond和pnlThird三个面板添加其中,并通过设置不同的颜色来区

9、分不同的面板。参考界面如图5-7所示。(3)查阅Java API,了解Swing包和AWT的类层次关系。操作要求操作要求152023/7/31网网络络与与软软件件教教研研室室5.3.1标签和按钮 JLabelJLabel构造方法构造方法l标签提供了一种在应用程序界面中显示不可修改文本的方法。标签缺省文本对齐方式是左对齐。162023/7/31网网络络与与软软件件教教研研室室5.3.1标签和按钮 JLabelJLabel常用方法常用方法172023/7/31网网络络与与软软件件教教研研室室5.3.1标签和按钮 按钮构造方法和常用方法按钮构造方法和常用方法l按钮是用于触发特定动作的组件,用户可以根

10、据需要创建纯文本的或带图标的按钮。182023/7/31网网络络与与软软件件教教研研室室5.3.1标签和按钮 标签和按钮应用实例标签和按钮应用实例l【例5-3】应用标签和按钮构造图形用户界面(Demo5_3.java)192023/7/31网网络络与与软软件件教教研研室室框架、面板与组件的关系框架、面板与组件的关系框架框架面板面板按钮按钮202023/7/31网网络络与与软软件件教教研研室室5.3.2单行文本框和多行文本框 JTextFieldJTextField构造方法构造方法l文本框显示指定文本并允许用户编辑文本,用户可以通过文本框来实现输入、错误检查之类的功能。212023/7/31网网

11、络络与与软软件件教教研研室室5.3.2单行文本框和多行文本框 JTextFieldJTextField常用方法常用方法222023/7/31网网络络与与软软件件教教研研室室5.3.2单行文本框和多行文本框 JPasswordFieldJPasswordField构造方法和常用方法构造方法和常用方法l密码框(JPasswordFiled)表示可编辑的单行文本的密码文本组件。232023/7/31网网络络与与软软件件教教研研室室5.3.2单行文本框和多行文本框 JTextAreaJTextArea构造方法和常用方法构造方法和常用方法lSwing中的JTextArea类和AWT中的TextArea类

12、都表示可编辑的多行文本组件。242023/7/31网网络络与与软软件件教教研研室室5.3.2单行文本框和多行文本框 文本框和密码框应用实例文本框和密码框应用实例【例5-4】应用标签、文本框、密码框、按钮等组件构建用户登录界面(Demo5_4.java)252023/7/31网网络络与与软软件件教教研研室室(1)注意图片文件的类型和路径的使用。(2)注意基本组件、内容容器和顶层容器之间的关系。操作提示操作提示(1)通过继承JFrame的方式创建框架类MyFrame和框架对象mf。(2)创建三个标签(其中一个为图片标签)、两个文本框、一个密码框、两个按钮(文字图片按钮)的登录服务器界面(参考界面如

13、图5-10所示)。(3)合理设置框架的大小等属性,将组件添加到框架上。(4)通过MyFrame类的构造方法完成框架的创建。操作要求操作要求262023/7/31网网络络与与软软件件教教研研室室5.3.3复选框和单选按钮 单选按钮可以让用户进行选择或取消选择,与复选按钮可以选择多个选项不同,单选按钮每次只能选择其中一个选项。JRadioButton 对象与 ButtonGroup 对象配合使用可创建一组按钮,保证一次只能选择其中的一个按钮。JRadioButtonJRadioButton272023/7/31网网络络与与软软件件教教研研室室5.3.3复选框和单选按钮 复选框(JCheckbox)

14、允许用户在多种选择中选择一个或多个选项。是一个可处于“开”(true)或“关”(false)状态的图形组件。JCheckBoxJCheckBox282023/7/31网网络络与与软软件件教教研研室室5.3.4列表框和组合框 列表框显示一系列的选项,用户可以从中选择一项或多项。列表框支持滚动条,可以浏览多项。JListJList292023/7/31网网络络与与软软件件教教研研室室5.3.4列表框和组合框 组合框的功能类似于列表框,但与列表框只能选择不同,组合框还提供一个文本框以进行文本的编辑。JComboBoxJComboBox302023/7/31网网络络与与软软件件教教研研室室单选钮、复选

15、框、列表框和组合框应用实例 应用实例应用实例【例5-5】应用单选钮、复选框、列表框、组合框等构建字体设置器界面(Demo5_5.java)312023/7/31网网络络与与软软件件教教研研室室(1)性别默认选择“男”。(2)组合框中的年龄通过一个For循环得到列表数据。操作提示操作提示(1)创建用户注册界面(参考界面如图5-12所示)。(2)将“爱好”归为一组。(3)组合框可输入也可选择,可供选择的年龄为16至90之间。操作要求操作要求322023/7/31网网络络与与软软件件教教研研室室5.3.5 菜单和工具栏 Swing中使用JMenuBar类实现菜单栏,通过将菜单(JMenu)对象添加到

16、菜单栏(JMenuBar)可以构造应用程序菜单。菜单栏菜单栏(MenuBar)(MenuBar)332023/7/31网网络络与与软软件件教教研研室室5.3.5 菜单和工具栏 菜单(JMenu)是一个包含菜单项(JMenuItem)的弹出窗口,用户选择菜单栏(JMenuBar)上的项时会显示该菜单项(JMenuItem)。下拉菜单下拉菜单(JMenu)(JMenu)342023/7/31网网络络与与软软件件教教研研室室5.3.5 菜单和工具栏 JMenuItem用来实现菜单中的选项。菜单项本质上是位于列表中的按钮,当用户选择“按钮”时,将执行与菜单项关联的操作。菜单项(菜单项(JMenuIte

17、mJMenuItem)352023/7/31网网络络与与软软件件教教研研室室5.3.5 菜单和工具栏 工具栏是窗口中提供的一种快捷操作的功能区,可以通过工具栏上的按钮,得到快捷的功能。工具栏(工具栏(JToolbarJToolbar)362023/7/31网网络络与与软软件件教教研研室室菜单和工具栏应用实例 应用实例应用实例【例5-6】应用菜单和工具栏构建记事本主界面(Demo5_6.java)372023/7/31网网络络与与软软件件教教研研室室(1)可以参考Windows系统下的“写字板”的界面。(2)注意工具栏按钮图标文件的路径。操作提示操作提示(1)创建写字板的菜单和工具栏界面(参考界

18、面如图5-14所示)。(2)创建“文件”、“编辑”、“查看”、“插入”、“格式”和“帮助”菜单。(3)在“格式”菜单下,创建菜单项。(4)创建“新建”、“打开”、“保存”、“打印”和“预览”的工具栏按钮。操作要求操作要求382023/7/31网网络络与与软软件件教教研研室室5.4.1对话框 Java桌面程序中的简单的对话框可以使用Swing中的JOptionPane类来实现,JOptionPane类中使用showXXXDialog方法实现不同类型的对话框。JOptionPaneJOptionPane类型类型392023/7/31网网络络与与软软件件教教研研室室5.4.1对话框 JOptionP

19、aneJOptionPane操作按钮类型和返回值类型操作按钮类型和返回值类型402023/7/31网网络络与与软软件件教教研研室室5.4.2表格 lJTable 用来显示和编辑规则的二维单元表。l设计使用 JTable 的应用程序时,要严格注意用来表示表数据的数据结构。lJTable 使用唯一的整数来引用它所显示的模型的行和列。表格概述表格概述412023/7/31网网络络与与软软件件教教研研室室5.4.2表格 l应用JTable时,常常要用到AbstractTableModel类 常用方法常用方法AbstractTableModelAbstractTableModel类类422023/7/3

20、1网网络络与与软软件件教教研研室室表格应用实例 应用实例应用实例【例5-7】应用表格显示学生详细信息(Demo5_7.java)432023/7/31网网络络与与软软件件教教研研室室5.4.3树 l使用JTree类,可以构造树状图展现一个层次关系分明的一组数据,给用户一个直观而易用的感觉。树型组件概述树型组件概述442023/7/31网网络络与与软软件件教教研研室室树型组件应用实例 应用实例应用实例【例5-8】应用树型结构显示学校专业汇总信息(Demo5_8.java)452023/7/31网网络络与与软软件件教教研研室室(1)树型结构和表格的布局不要求十分精确。(2)树型结构的结点前面不需要

21、加图标。操作提示操作提示(1)创建类似于Windows系统中的计算机管理的操作界面(参考界面如图5-18所示)。(2)使用两个面板分别放置树型结构和表格。操作要求操作要求462023/7/31网网络络与与软软件件教教研研室室5.5.1 流式布局 l为了保持组件的平台独立性,Java引入了布局管理器来控制组件的布局。lFlowLayout(流布局)是Panel和Applet的默认布局管理器。在FlowLayout中,组件在容器中按照从上到下,从左到右的顺序进行排列,如果当前行放置不下,则换行放置。概述概述472023/7/31网网络络与与软软件件教教研研室室5.5.2 网格布局 lGridLay

22、out(网格布局)布局管理器使容器中各个组件呈网格状布局,平均占据容器的空间。概述概述482023/7/31网网络络与与软软件件教教研研室室5.5.3 边界布局 lBorderLayout(边界布局)是Window、Frame和Dialog的缺省布局管理器。BorderLayout布局管理器把容器分成North、South、East、West和Center共5个区域,每个区域只能放置一个组件。l如果容器采用BorderLayout进行布局管理,在用add()方法添加组件到容器时,必须注明添加到哪个位置。l使用BorderLayout时,如果容器大小发生变化,组件的相对位置不变,但大小发生变化。

23、其构造方法有两种:(1)Borderlayout():以默认方式(组件没有间距)构造边界布局。(2)Borderlayout(int hgap,int vgap):以指定水平间距和垂直间距构造边界布局。其中:hgap和vgap分别为组件间水平和垂直方向上的空白空间。概述概述492023/7/31网网络络与与软软件件教教研研室室5.5.4 卡片布局 lCardLayout(卡片式布局)布局管理器能够帮助程序员处理两个以至更多的成员共享同一显示空间的问题。概述概述502023/7/31网网络络与与软软件件教教研研室室布局管理应用实例 应用实例应用实例【例5-9】应用各种布局管理进行组件布局(Dem

24、o5_9.java)512023/7/31网网络络与与软软件件教教研研室室5.5.5 网格袋布局 lGridBagLayout(网格袋布局)是功能最强大、最复杂和最难使用的布局管理器。概述概述【例例5-10】使用网格袋布局布局界面使用网格袋布局布局界面组件(组件(Demo5_10.java)522023/7/31网网络络与与软软件件教教研研室室5.5.6 空布局 lJava也允许程序员不使用布局管理器,而是直接指定各个组件的位置。通过setLayout(null)可以设置容器为空布局管理,再通过组件的setBounds(int,int,int,int)方法对组件的位置和大小进行控制。l【例5-

25、11】使用空布局设计用户登录界面(Demo5_11.java)概述概述532023/7/31网网络络与与软软件件教教研研室室(1)选择了布局方式之后,还需要注意设置框架的大小。(2)注意合理应用面板进行组件分组布局。操作提示操作提示(1)使用边界布局(BorderLayout)对“课堂模仿2”界面中的组件重新进行布局。(2)使用空布局方式对“课堂模仿3”界面中的组件重新进行布局。(3)使用合适的布局管理器对“课堂模仿5”界面中的组件重新进行布局。(4)使用合适的布局管理器对【例5-5】界面中的组件重新进行布局。操作要求操作要求542023/7/31网网络络与与软软件件教教研研室室5.6.1 J

26、ava事件模型 l事件就是发生的事情。lJava中,关于事件的信息是被封装在一个事件对象中。l所有的事件对象都是从java.util.EventObject类派生而来,如ActionEvent事件对象就是它的一个子类。事件事件l事件源是产生事件的对象,不同的事件源会产生不同的事件。例如:单击按钮,将产生动作事件(ActionEvent);关闭窗体,将产生窗口事件(WindowEvent)。这里的按钮和窗体就是事件源。事件源事件源l事件监听器负责侦听事件的发生,并根据事件对象中的信息来决定对事件的响应。l监听器可用addActionListener()方法添加,用removeActionList

27、ener()方法删除。事件监听器事件监听器552023/7/31网网络络与与软软件件教教研研室室5.6.1 Java事件模型 l事件源首先要授权事件监听器负责该事件源上事件的处理;l用户的动作在事件源上可能产生多种事件对象,由于有了授权过程,不同的事件监听器会分别对不同的事件对象进行处理。JavaJava事件处理机制事件处理机制562023/7/31网网络络与与软软件件教教研研室室5.6.2 事件类型 l与AWT有关的事件类都由java.awt.AWTEvent类派生,这些AWT事件分为两大类:低级事件和高级事件。l低级事件是指基于组件和容器的事件,高级事件是基于语义的事件。概述概述57202

28、3/7/31网网络络与与软软件件教教研研室室5.6.3 AWT事件及其相应的监听器接口 l为了能够很好的编写事件处理程序,必须了解Java中的事件类型事件类型以及对不同事件进行处理的接口接口名,最重要的是要掌握各种接口中响应对应事件的方法名称方法名称。因为在编写事件时处理者需要实现事件对应的接口,也就是要重写接口中的每一个方法,以便对组件上产生的不同事件进行处理。概述概述582023/7/31网网络络与与软软件件教教研研室室5.6.3 AWT事件及其相应的监听器接口 lJava通过为Listener接口提供适配器类的形式简化事件处理代码。一般情况下只对有一个以上方法的接口提供适配器,使用适配器

29、进行事件处理时,只需要对特定的方法进行重写。概述概述lComponentAdapter:组件适配器。lContainerAdapter:容器适配器。lFocusAdapter:焦点适配器。lKeyAdapter:键盘适配器。lMouseAdapter:鼠标适配器。lMouseMotionAdapter:鼠标移动适配器。lWindowAdapter:窗口适配器。Java.awt.eventJava.awt.event包中定义的事件适配类包中定义的事件适配类592023/7/31网网络络与与软软件件教教研研室室5.6.4 Swing事件及其相应的监听器接口 lSwing的事件处理机制继续沿用AWT

30、的事件处理机制,基本的事件处理使用java.awt.event包中的类实现,同时javax.swing.event包中增加了一些新的事件及其监听器接口。概述概述602023/7/31网网络络与与软软件件教教研研室室5.6.5 典型事件处理程序 l【例5-12】在“例5-11”的程序基础上应用事件监听实现用户登录的业务处理(Demo5_12.java)l【例5-13】应用事件监听内部类实现对“例5-12”中事件的处理(Demo5_13.java)动作事件动作事件612023/7/31网网络络与与软软件件教教研研室室5.6.5 典型事件处理程序 l【例5-14】应用键盘事件(Demo5_14.ja

31、va)键盘事件键盘事件622023/7/31网网络络与与软软件件教教研研室室5.6.5 典型事件处理程序 l【例5-15】应用鼠标事件,显示当前鼠标位置和鼠标事件(Demo5_15.java)鼠标事件鼠标事件632023/7/31网网络络与与软软件件教教研研室室(1)自行设计按钮的事件逻辑。(2)尝试事件监听程序的不同编写方式。操作提示操作提示(1)借助于事件处理机制,对“课堂模仿2”中的按钮事件进行处理。(2)借助于事件处理机制,对“课堂模仿3”中的按钮事件进行处理。(3)借助于事件处理机制,对“课堂模仿5”中的按钮事件进行处理。(4)借助于事件处理机制,对【例5-5】中的组件事件进行处理。

32、操作要求操作要求642023/7/31网网络络与与软软件件教教研研室室5.7 NetBeans中开发事件GUI程序【例5-16】NetBeans中开发用户登录程序l新建JFrame窗体l设计窗体 l添加事件处理 l编译运行程序 开发步骤开发步骤652023/7/31网网络络与与软软件件教教研研室室(1)注意NetBeans环境下组件属性和组件的方法之间的关系。(2)注意NetBeans环境下事件处理程序的编写方式。操作提示操作提示(1)在NetBeans环境下完成【例5-4】用户登录程序的开发。(2)在NetBeans环境下完成类似于【例5-5】的字体设置器的开发。操作要求操作要求662023

33、/7/31网网络络与与软软件件教教研研室室(1)应用Swing 组件设计如图5-34所示的用户登录界面(LoginFrame.java),并要求在输入正确的用户名和密码(均为admin)后,进入应用程序主界面。(2)应用Swing组件设计如图5-35所示的应用程序主界面(MainFrame.java),并在主菜单中的“实用工具”菜单下添加“计算器”菜单项,通过单击该菜单项可以访问“简易计算器”。操作要求操作要求672023/7/31网网络络与与软软件件教教研研室室(3)应用Swing组件设计如图5-36所示的“简易计算器”(CalFrame.java),完成简单的四则运算。操作要求操作要求(1)用户名和密码为静态(均为admin),在程序代码中进行登录验证。(2)“简易计算器”使用面板进行组件的布局,四个单选钮组成一个ButtonGroup。(3)根据程序需要,进行必要的事件处理。操作提示操作提示68

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!