第6章图形用户界面设计基础课件.ppt
《第6章图形用户界面设计基础课件.ppt》由会员分享,可在线阅读,更多相关《第6章图形用户界面设计基础课件.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6章章 图形用户界面设计基础图形用户界面设计基础 u 6.1【案例【案例17】创建窗体】创建窗体u 6.2【案例【案例18】记录员工个人信息】记录员工个人信息u 6.3【案例【案例19】会移动的笑脸】会移动的笑脸u 6.4【案例【案例20】名曲欣赏】名曲欣赏u 6.1【案例【案例17】创建窗体】创建窗体1图形用户界面和标准组件图形用户界面和标准组件(1)图形用户界面简介:图形用户界面()图形用户界面简介:图形用户界面(Graphics User Interface,GUI)。)。它使用图形的方式,借助菜单、文本框、按钮等标准界面组件和鼠标及键盘它使用图形的方式,借助菜单、文本框、按钮等标准
2、界面组件和鼠标及键盘的操作,帮助用户方便地向计算机系统发出指令,并将系统运行的结果同样的操作,帮助用户方便地向计算机系统发出指令,并将系统运行的结果同样以图形方式显示给用户。以图形方式显示给用户。在图形用户界面(在图形用户界面(GUI)出现之前,用户需要输入命令,然后计算机再进行)出现之前,用户需要输入命令,然后计算机再进行计算并输出结果。这种人机交流方式需要用户记忆大量的命令,并且操作烦计算并输出结果。这种人机交流方式需要用户记忆大量的命令,并且操作烦琐、复杂、容易出错。对于计算机的初学者和一般用户来说,要掌握一种系琐、复杂、容易出错。对于计算机的初学者和一般用户来说,要掌握一种系统或者应用
3、软件更是困难重重。例如,统或者应用软件更是困难重重。例如,DOS操作系统虽然具有与操作系统虽然具有与Windows同同样强大的文件管理功能,但是其普及程度远远不及后者,在很大程度上是因样强大的文件管理功能,但是其普及程度远远不及后者,在很大程度上是因为为DOS不具有图形用户界面。由此可见,一个友好的图形用户界面对于一个不具有图形用户界面。由此可见,一个友好的图形用户界面对于一个软件的重要性。软件的重要性。图形用户界面是指包括文本框、标签、按钮、单选按钮、复选框、图片、菜图形用户界面是指包括文本框、标签、按钮、单选按钮、复选框、图片、菜单、对话框等组件的一个人机交互的界面。在该界面中,用户不需要
4、记忆任单、对话框等组件的一个人机交互的界面。在该界面中,用户不需要记忆任何命令,通过单击、双击、拖动鼠标和简单的文字输入就可以轻松地操作计何命令,通过单击、双击、拖动鼠标和简单的文字输入就可以轻松地操作计算机完成所有的任务。算机完成所有的任务。在在Java语言中,可以自行设计程序的图形用户界面,使得程序运行效果更加语言中,可以自行设计程序的图形用户界面,使得程序运行效果更加直观、生动活泼。设计和实现图形用户界面的工作主要有以下直观、生动活泼。设计和实现图形用户界面的工作主要有以下3个方面。个方面。 创建组件(创建组件(Component):创建组成图形用户界面的各种元素。例如,文本):创建组成
5、图形用户界面的各种元素。例如,文本框、标签、按钮、单选按钮、复选框、图片、菜单、对话框等。框、标签、按钮、单选按钮、复选框、图片、菜单、对话框等。指定布局(指定布局(Layout):设置各个组件在图形用户界面中的相应位置。):设置各个组件在图形用户界面中的相应位置。响应事件(响应事件(Event):定义当用户进行某些操作时,程序的执行情况,从而实):定义当用户进行某些操作时,程序的执行情况,从而实现图形用户界面的人机交互功能。例如,当单击按钮、拖动鼠标或者在文本现图形用户界面的人机交互功能。例如,当单击按钮、拖动鼠标或者在文本框中输入文字时,程序的反应。程序的反应结果一般也是通过图形用户界面框
6、中输入文字时,程序的反应。程序的反应结果一般也是通过图形用户界面显示出来。显示出来。Java1.0中出现了用来生成图形用户界面的包是中出现了用来生成图形用户界面的包是java.awt,简称抽象窗口工具,简称抽象窗口工具集,即集,即AWT(Abstract Window Toolkit)。它的设计目标是希望构建一个)。它的设计目标是希望构建一个通用的通用的GUI,使得利用它编写的程序能够运行在所有的平台上。,使得利用它编写的程序能够运行在所有的平台上。(2)GUI标准组件:标准组件:Java中构成图形用户界面的各种元素和成分可以分为两中构成图形用户界面的各种元素和成分可以分为两大类:容器和组件。
7、大类:容器和组件。容器(容器(Container):容器是用来摆放图形用户界面中各种组件的一个矩形范):容器是用来摆放图形用户界面中各种组件的一个矩形范围。一般说来,一个应用程序的图形用户界面必须有一个顶层容器,比如一围。一般说来,一个应用程序的图形用户界面必须有一个顶层容器,比如一个窗口。在容器中,可以放置各种组件或者其他容器,在新放置的容器内又个窗口。在容器中,可以放置各种组件或者其他容器,在新放置的容器内又可以放置各种组件或者其他容器,依此类推就构成一个复杂的图形界面系统。可以放置各种组件或者其他容器,依此类推就构成一个复杂的图形界面系统。运行程序时,容器的显示位置和大小也就是该程序图形
8、用户界面的显示位置运行程序时,容器的显示位置和大小也就是该程序图形用户界面的显示位置和大小。用户可以自行设置位置和大小的绝对值,也可以依据其所含组件和和大小。用户可以自行设置位置和大小的绝对值,也可以依据其所含组件和其他容器的位置及大小来设置相对位置。其他容器的位置及大小来设置相对位置。容器通常都有一个背景,这个背景覆盖填充整个容器,可以是透明的,也可容器通常都有一个背景,这个背景覆盖填充整个容器,可以是透明的,也可以使用指定的图案增加图形用户界面的生动性和个性化。以使用指定的图案增加图形用户界面的生动性和个性化。组件(组件(Compnent):组件是图形用户界面的基本组成单位,它不能包含任)
9、:组件是图形用户界面的基本组成单位,它不能包含任何其他的组件或者容器。组件的主要作用是接受用户的指令,显示输出结果,何其他的组件或者容器。组件的主要作用是接受用户的指令,显示输出结果,从而完成人机交流。组件的种类很多,例如,按钮、复选框、下拉菜单等。从而完成人机交流。组件的种类很多,例如,按钮、复选框、下拉菜单等。每一种组件都有其特定的属性,以及相对应的事件响应方式。在容器中的组每一种组件都有其特定的属性,以及相对应的事件响应方式。在容器中的组件可以按一定的规则来放置,确定它们的相对位置关系和前后排列关系等。件可以按一定的规则来放置,确定它们的相对位置关系和前后排列关系等。除了容器和组件这两大
10、图形用户界面组成部分外,还有一些标志图案或者几除了容器和组件这两大图形用户界面组成部分外,还有一些标志图案或者几何图形,这些主要是用来突出输出结果和美化组件的。它们不被系统识别,何图形,这些主要是用来突出输出结果和美化组件的。它们不被系统识别,所以不能响应用户的操作,不具有交互功能所以不能响应用户的操作,不具有交互功能。2AWT和和Swing在在Java语言中,图形用户界面是通过语言中,图形用户界面是通过java.awt包或者包或者javax.swing包中的类来包中的类来实现的。实现的。java.awt包一般简称为包一般简称为AWT,其含义是抽象窗口工具箱(,其含义是抽象窗口工具箱(Abst
11、ract Windows Toolkit););javax.swing包一般简称为包一般简称为Swing,它是,它是Java基础类库基础类库(Java Fundation Class,JFC)中的一员。)中的一员。(1)AWT提供了多种标准的提供了多种标准的GUI组件,比如标签、文本框、按钮等,以及窗组件,比如标签、文本框、按钮等,以及窗口、面板等容器。使用口、面板等容器。使用AWT的布局管理器,可以安排各个组件在容器中的位的布局管理器,可以安排各个组件在容器中的位置。此外,还有前面介绍的绘制几何图形、设置文字字体、颜色等功能。在置。此外,还有前面介绍的绘制几何图形、设置文字字体、颜色等功能。
12、在AWT中,专门有一组类用于响应并处理外部事件。中,专门有一组类用于响应并处理外部事件。Java Applet程序就是属于程序就是属于AWT中的一种图形用户界面实现方法。中的一种图形用户界面实现方法。实际上,实际上,AWT提供给编程人员的只是抽象的窗体界面系统,而在其内部会针提供给编程人员的只是抽象的窗体界面系统,而在其内部会针对每种操作系统,分别使用不同的方式来实现图形用户界面。使用这种方式对每种操作系统,分别使用不同的方式来实现图形用户界面。使用这种方式虽然加快了虽然加快了GUI的实现速度,但是因为每种操作系统的组件大小、文字字体的实现速度,但是因为每种操作系统的组件大小、文字字体和界面布
13、局都不同,所以会造成同一个程序在不同系统中的图形用户界面效和界面布局都不同,所以会造成同一个程序在不同系统中的图形用户界面效果不同。例如,在果不同。例如,在Mac机上设计的一个友好的程序图形用户界面,其效果如机上设计的一个友好的程序图形用户界面,其效果如图图6-1-2(a)所示,将该程序在)所示,将该程序在PC机上运行得到的图形用户界面可能不尽如机上运行得到的图形用户界面可能不尽如人意,其效果如图人意,其效果如图6-1-2(b)所示。)所示。(a) (b)为了解决为了解决AWT这个严重的缺陷,这个严重的缺陷,Sun公司在公司在Java 2(Java 1.4)以后的版本)以后的版本中增加了中增加
14、了javax.swing包。包。(2)Swing不仅包含了不仅包含了AWT中几乎所有的容器和组件,而且增加了很多新的中几乎所有的容器和组件,而且增加了很多新的容器和组件。因为容器和组件。因为AWT中的类已经使用了各个容器和组件的英文名称,所以中的类已经使用了各个容器和组件的英文名称,所以Swing中的类需要在原有名称前加一个字母中的类需要在原有名称前加一个字母J,以示区别。例如,与,以示区别。例如,与AWT中中Button类具有同样功能的类具有同样功能的Swing中的类称为中的类称为JButton类。类。Swing中的所有组中的所有组件都是件都是“轻量级轻量级”的,很小巧的;而顶层容器则是的,
15、很小巧的;而顶层容器则是“重量级重量级”的,支持的,支持“可可插入外观和效果插入外观和效果”(Look and Feel)。也就是说,用户界面的外观可以在不)。也就是说,用户界面的外观可以在不同的平台和不同的操作系统上被动态地改变以符合用户的期望。例如,图同的平台和不同的操作系统上被动态地改变以符合用户的期望。例如,图6-1-3展示了展示了4种不同的用户界面外观。种不同的用户界面外观。JavaGTK+WindowsMac OS图6-1-3 Swing图形界面效果具有图形用户界面的具有图形用户界面的Swing应用程序都具有至少一个顶层容器。应用程序都具有至少一个顶层容器。Swing中共中共有有4
16、个顶层容器:个顶层容器:JFrame、JDialog、JApplet和和JWindow。3JFrameJFrame是最简单最常用的是最简单最常用的Swing顶层容器,它含有一个内容框架(顶层容器,它含有一个内容框架(Content Pane)用来容纳所有的组件。对于菜单组件来说,既可以放置到内容框架内,)用来容纳所有的组件。对于菜单组件来说,既可以放置到内容框架内,也可以直接添加到也可以直接添加到JFrame上。这三者的层次关系如图上。这三者的层次关系如图6-1-4所示,其图形用所示,其图形用户界面示意图如图户界面示意图如图6-1-5所示。所示。JFrame的创建、设置和显示方法如下。的创建、
17、设置和显示方法如下。JFrame菜单组件内容框架JFrame内容框架 菜单组件 JLabelJButton 图6-1-4 容器和组件的关系 图6-1-5 示意图(1)创建)创建JFrame:创建:创建JFrame对象的常用格式有以下两种。对象的常用格式有以下两种。如果使用第二种创建形式,则在创建如果使用第二种创建形式,则在创建JFrame的同时,也设置了其窗口标题的的同时,也设置了其窗口标题的内容。例如,下面的语句创建了一个内容。例如,下面的语句创建了一个JFrame对象对象f,且其窗口的标题为,且其窗口的标题为“欢欢迎学习迎学习Java语言语言”。(2)添加组件:因为大多数组件不可以直接添加
18、到)添加组件:因为大多数组件不可以直接添加到JFrame中,所以使用中,所以使用JFrame的对象调用其的对象调用其getContentPane()方法,返回一个方法,返回一个Frame的内容框架的内容框架(Content Pane)对象,然后再通过调用)对象,然后再通过调用add()方法将组件对象添加到内容方法将组件对象添加到内容框架中,格式如下。框架中,格式如下。 (3)JFrame类中的方法类中的方法pack()方法:将方法:将JFrame的窗口设置为根据其中所含的容器和组件的大小来决的窗口设置为根据其中所含的容器和组件的大小来决定,以能够容纳每个组件的最佳大小为准。定,以能够容纳每个组
19、件的最佳大小为准。JFrame 对象名对象名=new JFrame();JFrame 对象名对象名=new JFrame(String s);JFrame f=new JFrame(欢迎学习欢迎学习Java语言语言);JFrame对象名对象名.getContentPane().add(组件对象名组件对象名);setSize(w,h)方法:准确设置方法:准确设置JFrame窗口的大小,其中窗口的大小,其中w表示窗口的宽度,表示窗口的宽度,h表示窗口的高度。表示窗口的高度。setBounds(x,y,w,h)方法:不仅可以准确设置方法:不仅可以准确设置JFrame窗口的大小,而且还可窗口的大小,而
20、且还可以准确设置以准确设置JFrame窗口在屏幕中的位置,其中窗口在屏幕中的位置,其中x表示窗口左上角的表示窗口左上角的x轴坐标值,轴坐标值,y表示窗口左上角的表示窗口左上角的y轴坐标值,轴坐标值,w表示窗口的宽度,表示窗口的宽度,h表示窗口的高度。表示窗口的高度。setBackground(颜色参数颜色参数)方法:改变方法:改变JFrame容器的背景颜色。例如,下面容器的背景颜色。例如,下面的语句将背景颜色设置为蓝色。的语句将背景颜色设置为蓝色。setTitle(String s)方法:设置窗口的标题。方法:设置窗口的标题。setDefaultCloseOperation(参数参数)方法:用
21、来控制当方法:用来控制当JFrame窗口被关闭后,窗口被关闭后,Swing应用程序的下一步操作。一般只使用应用程序的下一步操作。一般只使用JFrame.EXIT_ON_CLOSE作为作为参数,表示窗口被关闭后,自动结束程序运行。参数,表示窗口被关闭后,自动结束程序运行。(4)显示)显示JFrame窗口:完成所有窗口:完成所有JFrame的创建和设置后,需要执行显示的创建和设置后,需要执行显示JFrame窗口的语句,才可以在屏幕上看到程序运行后图形用户界面的效果。窗口的语句,才可以在屏幕上看到程序运行后图形用户界面的效果。显示显示JFrame窗口的格式有两种,这两种格式的效果是完全一样的。窗口的
22、格式有两种,这两种格式的效果是完全一样的。f.setBackground(Color.blue);JFrame对象名对象名.setVisible(true);JFrame对象名对象名.show();以上是创建和设置以上是创建和设置JFrame最常用的语句,下面的程序可以创建一个最简单的最常用的语句,下面的程序可以创建一个最简单的不含任何组件的不含任何组件的JFrame窗口。窗口。将上面的程序保存在将上面的程序保存在“我的我的Java程序程序”文件夹中,然后按照运行文件夹中,然后按照运行Java Application的方法输入命令运行程序,结果如图的方法输入命令运行程序,结果如图6-1-6所示
23、。所示。import javax.swing.*; /导入导入Swing包,以便使用其中的类包,以便使用其中的类public class Exp public static void main(String args) JFrame f=new JFrame(); /创建容器创建容器JFrame的对象的对象f f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /窗口关闭后结束程序窗口关闭后结束程序 f.setBounds(100,100,300,200); /设置其在屏幕中的显示位置及大小设置其在屏幕中的显示位置及大小 f.setTitle(欢
24、迎学习欢迎学习Java语言语言); /设置窗口的标题设置窗口的标题 f.setVisible(true); /显示对象显示对象f 图6-1-6 JFrame窗口4JPanelJPanel是是Swing中的一个第二层容器,其中可以添加各种组件,但是不能绘制图形,中的一个第二层容器,其中可以添加各种组件,但是不能绘制图形,只能改变其背景颜色。只能改变其背景颜色。(1)创建)创建JPanel:创建:创建JPanel的常用格式有以下两种。的常用格式有以下两种。格式格式1:格式格式2:如果使用第二种创建形式,则在创建如果使用第二种创建形式,则在创建JPanel的同时,也设置了其布局方式。因为不是的同时,
25、也设置了其布局方式。因为不是所有的布局管理器都可以作为所有的布局管理器都可以作为JPanel构造方法的参数,所以最好使用构造方法的参数,所以最好使用setLayout()方方法来改变布局方式。下一节中将详细介绍布局管理器。法来改变布局方式。下一节中将详细介绍布局管理器。(2)添加组件:使用)添加组件:使用add()方法可以将组件添加到方法可以将组件添加到JPanel中,其格式如下。中,其格式如下。格式:格式:其中,使用不同的布局管理器,参数的要求不同。其中,使用不同的布局管理器,参数的要求不同。5布局管理器布局管理器在在Java语言的图形用户界面设计中,容器和组件的布局管理是非常重要的一个环节
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 图形用户界面设计基础课件 图形 用户界面 设计 基础 课件
限制150内