《图形化用户界面设计》.pptx
《《图形化用户界面设计》.pptx》由会员分享,可在线阅读,更多相关《《图形化用户界面设计》.pptx(86页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章第八章 图形化用户界面设计图形化用户界面设计 2清华大学出版社Java程序设计(第2版)本章本章英文缩略词英文缩略词列列表表缩缩 略略 词词英文全称英文全称汉译名称汉译名称GUIGraphical User Interface图形用户界面AWTAbstract Window Toolkit抽象窗口工具集JFCJava Foundation ClassesJava基础类库TPCThree Primary Colours三原色 3清华大学出版社Java程序设计(第2版)图形化用户界面图形化用户界面GUIGUI程序开发已经成为Java编程的主流。Java提供了AWT与 Swing两套以面向对象
2、方式实现跨平台开发的GUI类库包,二者都是Java基础类库JFC(Java Foundation Classes)的重要组成部分 4清华大学出版社Java程序设计(第2版)AWTAWTAWT(Abstract Window Toolkit)是低版本JDK提供的GUI开发工具包,包含60多个组件类与接口,定义了布局管理器与事件处理机制,能够快捷而有效地开发基于窗口或基于Applet的GUI应用 5清华大学出版社Java程序设计(第2版)SwingSwingSwing是Java 2发布的功能更加完善的第二代GUI开发工具集,它构建在AWT基础之上,其事件处理机制、布局管理模式与图形绘制功能,仍然沿
3、用AWT已有的技术成果Swing能够替代AWT,包含250多个更为丰富多样的类与接口,支持复杂GUI系统的开发 6清华大学出版社Java程序设计(第2版)AWTAWT的组件类的组件类 GUI组件(Component)又可译作GUI构件,是组成GUI应用程序的图形用户界面元素(如菜单、文本框、标签、命令按钮等)。每在GUI组件都与一个特定的与操作系统平台无关的组件类相对应。这些组件相互配合,可以快速搭建起GUI程序Java将GUI组件类分类分层,组织到一个名为java.awt的包中。用”import java.awt.*;”语句导入该包中含有的所有类与接口 7清华大学出版社Java程序设计(第2
4、版)AWTAWT组件类的继承关系组件类的继承关系 8清华大学出版社Java程序设计(第2版)AWTAWT的基本组件列表的基本组件列表 9清华大学出版社Java程序设计(第2版)AWTAWT的容器组件的容器组件 GUI组件按照功能可分为基本组件与容器组件组件不能直接在程序运行界面中显示,必须放置在容器内才能呈现出来。容器自身首先也是一种组件,具有其他组件的共同特性;其次容器是一种特殊的组件,其特殊性在于容器的功能是用来容纳一般的组件对象与容器组件对象的,即容器除提供给其他组件作为安置场所外,其自身还可相互嵌套 10清华大学出版社Java程序设计(第2版)AWTAWT容器类的层次结构容器类的层次结
5、构 11清华大学出版社Java程序设计(第2版)顶级顶级容器组件容器组件顶级容器,就是能够直接加载到桌面,由桌面管理系统来管理,而不需要放置在任何其他容器对象内,并且能够作为其他容器属主的容器组件Container类直接派生出Window类、Panel类、ScrollPane类等几种容器子类Window类作为顶层窗口类,不依赖于其他容器而独立存在。Window类直接派生两个子类:Frame类与Dialog类Window、Frame及Dialog是唯一有资格作为顶级容器窗口的三类组件 12清华大学出版社Java程序设计(第2版)AWTAWT容器组件的特征容器组件的特征容器有一定的位置坐标容器一般
6、是矩形的,有一定的空间范围与尺寸,可以显示出边界外框容器组件可以嵌套,构建出一个层次结构容器还可设定背景颜色和背景图案加载到容器内的GUI界面元素的显示与隐藏依附于容器的打开与隐藏或关闭 13清华大学出版社Java程序设计(第2版)窗口容器组件窗口容器组件Window Window Window类为Frame类与Dialog类的基类,由它生成的Window对象称为窗口Window对象不拥有边框与菜单栏,在创建Window对象时,必须指明它的属主(owner)对象;能用作窗口属主的组件只能为顶级容器window、frame及dialog。用户编程时很少直接使用Window类对象作为程序的界面窗口
7、,通常会使用该类的Frame子类生成应用窗口 14清华大学出版社Java程序设计(第2版)框架容器组件框架容器组件Frame Frame 框架组件Frame是AWT应用程序最常使用的基本容器窗口之一,Frame对象可以带有边框、标题栏、菜单栏与窗口缩放功能按钮(包括窗口最大化、最小化及关闭三个按钮)Frame类提供了大量的方法来完成窗口对象的生成与设置 15清华大学出版社Java程序设计(第2版)颜色颜色(Color)Color)类类通过AWT提供的Color类,可以为窗体或其他组件设置前景色与背景色。Color类的完整路径为,该类定义了与颜色相关的常量与方法Color类中封装了常用的13种标
8、准颜色的符号常量。如:Color.BLACK Color.WHITE Color.RED Color.GREEN Color.BLUE Color.YELLOW 等 16清华大学出版社Java程序设计(第2版)三原色原理三原色原理Java中,颜色由红、绿、蓝三种分量构成,每种分量都是0,255范围内的整数值,或者是0.0,1.0范围内的实数值,分量的取值代表了该分量的色彩与亮度。红(Red)、绿(Green)、蓝(Blue)三种分量被称为光的三原色三原色所有可能取值的组合,能够形成256256256 种不同的色彩。与每种色彩对应的三原色的分量值称为该色彩的RGB值通过RGB方式形成颜色的原理,
9、被称为光的三原色原理 17清华大学出版社Java程序设计(第2版)颜色设置颜色设置 GUI编程中,Color类定义了操作颜色的常量与方法,该类的完整包路径为Color类常用的三种构造方法的定义为:31public Color(int r,int g,int b);32public Color(float r,float g,float b);33public Color(int rgb);18清华大学出版社Java程序设计(第2版)获取获取RGBRGB颜色分量的方法颜色分量的方法ColorColor类提类提供了获取供了获取RGBRGB颜色分量的对应方法:颜色分量的对应方法:31public i
10、nt getRed();/获取颜色的红色分量值32public int getGreen();/获取颜色的绿色分量值33public int getBlue();/获取颜色的蓝色分量值 19清华大学出版社Java程序设计(第2版)字体字体FontFont类类通过通过FontFont类可以创建字体对象,为文本设置类可以创建字体对象,为文本设置字体属性。字体的属性通常包括以下三种:字体属性。字体的属性通常包括以下三种:31字体名称:当前环境下可用的字体名称(Font Name)32字体样式:枚举常量代表标准字体样式(Font Style)33字体尺寸:字体尺寸(Font Size)表示字体的大小
11、20清华大学出版社Java程序设计(第2版)字字体体名称名称(Font Name)(Font Name)当前环境下可用的字体名称取决于系统中安装的字库Java系统为用户提供了五种标准的逻辑字体:SansSerif、Serif、Monospaced、Dialog和DialogInput系统将根据当前机器状态,自动将逻辑字体映射为计算机上的物理字体 21清华大学出版社Java程序设计(第2版)字体字体样式样式(Font Style)(Font Style)Java定义了三种枚举常量,来代表标准的字体样式。在具体应用中,常用加号(+)将这些常量连接起来,得到同时具备几种样式的复合样式31Font.P
12、LAIN(常量值为0):代表正常风格的字体32Font.BOLD(常量值为1):代表加粗风格的字体33Font.ITALIC(常量值为2):代表倾斜风格的字体 22清华大学出版社Java程序设计(第2版)字字体体尺寸尺寸(Font Size)(Font Size)字体尺寸表示字体的大小,以像素为单位对于具有可见的文本属性的组件,可以调用继承自Component基类的setFont方法设置文字setFont方法的原型定义如下:void setFont(Font f);23清华大学出版社Java程序设计(第2版)字体设字体设置示例置示例 24清华大学出版社Java程序设计(第2版)JavaJava
13、的屏幕坐标系的屏幕坐标系Java的GUI屏幕坐标原点(0,0)对应位置为屏幕的左上角,缺省的坐标单位为屏幕像素GUI应用程序的窗体起始位置默认为屏幕原点(0,0),X坐标由左至右增加,Y坐标由上至下增加使用setLocation(x,y)或setBounds(x,y,width,height)方法可以将应用窗体的左上角位置设置到指定的屏幕位置(x,y)25清华大学出版社Java程序设计(第2版)窗体与屏幕坐标系窗体与屏幕坐标系 26清华大学出版社Java程序设计(第2版)创建创建AWTAWT应用窗体的步骤应用窗体的步骤33使用窗口类或继承自父类的构造方法生成窗口对象343132用importj
14、ava.awt.*;导入AWT开发工具包所有类定义用户类,用extends子句指定Frame为其父类通过对象调用相应方法来设置窗口对象的标题以以Frame组件为例,创建应用程序窗体的步骤如下组件为例,创建应用程序窗体的步骤如下:27清华大学出版社Java程序设计(第2版)创建创建AWTAWT应用窗体的步骤应用窗体的步骤(续续)36调用setVisible方法或设置visible属性,将窗口对象默认的不可见状态改变为显示状态37启动事件处理机制为窗口设置关闭程序等基本功能通过调用相应方法来设置窗口的尺寸大小、屏幕位置、前、背景色、布局管理方案等特性35 28清华大学出版社Java程序设计(第2版
15、)SwingSwing的组件类的组件类的组件类的组件类 对应于Swing的GUI组件有一个共同的基类JComponent,Swing组件被称为J类,因为这些类的类名首字母一律为JSwing的出现,将Java的图形用户界面提升到了一个新的层次。与AWT相比,Swing的功能更强大,提供的组件更丰富,平台的独立性与可移植性更好Swing组件的事件处理机制与AWT的事件处理机制完全一样,除可使用java.awt.event包中的各种类进行事件处理外,Swing还也可使用为它专门定制的javax.swing.event事件处理包中的类来处理事件 29清华大学出版社Java程序设计(第2版)SwingS
16、wing的的容器组件容器组件Swing的顶层容器组件包括JWindow、JFrame、JDialog与JApplet等,其中,JApplet主要用于Applet小程序的开发。此外,JOptionPane与JPanel也是Swing常用的容器组件常用的Swing窗口容器组件包括:JFrame,JApplet,JDialog,JWindow等。其中JFrame与JDialog分别是AWT窗口容器组件Frame与Dialog的替代组件 30清华大学出版社Java程序设计(第2版)内容窗格内容窗格内容窗格内容窗格ContentPaneContentPane内容窗格ContentPane是一个用来包含除
17、菜单栏以外的其他GUI组件的容器对象低版本的JDK中,向JFrame窗口中添加组件时,必须先取得它的ContentPane对象,然后再使用add()方法把组件加入到ContentPane对象中 31清华大学出版社Java程序设计(第2版)添加组件到内容窗格添加组件到内容窗格添加组件到内容窗格添加组件到内容窗格的方法的方法的方法的方法1 1【方法1】使用JFrame类的getContentPane方法首先获得当前JFrame窗体的ContentPane对象,然后调用ContentPane对象的add方法添加GUI组件实现格式如下:Container contentPane=.getContent
18、Pane();contentPane.add();有有2 2种方法将种方法将GUIGUI组件添加到组件添加到JFrameJFrame对象的内容窗格中对象的内容窗格中:32清华大学出版社Java程序设计(第2版)添加组件到内容窗格添加组件到内容窗格添加组件到内容窗格添加组件到内容窗格的方法的方法的方法的方法2 2【方法2】先生成一个新的容器对象作为JFrame窗体的内容面板:通常选用面板组件JPanel担当此任,JPanel本身是容器组件,可以容纳其他的GUI元素再设置容器对象的布局管理器等属性,并使用add方法将组件添加到JPanel对象中然后使用JFrame类的setContentPane方
19、法将JPanel对象设置为JFrame窗体的内容面板setContentPane方法的原型定义为:public void setContentPane(ContainercontentPane)33清华大学出版社Java程序设计(第2版)创创创创建建建建JFrameJFrame窗口的步窗口的步窗口的步窗口的步骤骤骤骤31用语句“import javax.swing.*;”导入Swing包,添加以下三条导入包的语句:import java.awt.*;import java.awt.event.*;import javax.swing.event.*;32使用构造方法创建JFrame窗口 34清
20、华大学出版社Java程序设计(第2版)创建创建创建创建JFrameJFrame窗口的步骤窗口的步骤窗口的步骤窗口的步骤(续续续续)33设置窗口大小、位置、标题、图标等属性34设置窗口关闭后的响应行为取得ContentPane对象,或者为JFrame窗体创建一个ContentPane对象35为ContentPane对象设置布局管理器及其他属性36 35清华大学出版社Java程序设计(第2版)创建创建创建创建JFrameJFrame窗口的步骤窗口的步骤窗口的步骤窗口的步骤(续续续续)37使用add()方法把组件加入到ContentPane对象中;如果ContentPane对象是新创建的容器组件,还
21、需要使用setContentPane方法将其设置为JFrame窗体的内容窗格创建后的窗口默认不可见,需要调用setVisible方法或show方法使其可见38 36清华大学出版社Java程序设计(第2版)关闭关闭关闭关闭窗体的窗体的窗体的窗体的操作操作操作操作JFrame类提供了关闭窗体的setDefaultCloseOperation方法该方法的原型如下:public void setDefaultCloseOperation(int operation);其中参数operation,为关闭时所使用的行为控制选项 37清华大学出版社Java程序设计(第2版)控制选项控制选项控制选项控制选项o
22、perationoperationoperationoperation控制选项控制选项operationoperation可用的枚举常量为:可用的枚举常量为:33HIDE_ON_CLOSE:调用注册给当前程序的事件处理方法后将自动隐藏该窗体。该选项为默认选项DISPOSE_ON_CLOSE:调用执行注册给当前程序的事件处理方法后自动隐藏并释放该窗体34EXIT_ON_CLOSE:执行退出应用程序后的默认窗口关闭操作31DO_NOTHING_ON_CLOSE:不执行任何操作,由注册给当前程序的WindowListener对象通过windowClosing方法去处理该操作32 38清华大学出版社J
23、ava程序设计(第2版)框架窗体框架窗体框架窗体框架窗体JFrameJFrame示例示例 39清华大学出版社Java程序设计(第2版)面面板类板类JPanel JPanel Swing的JPanel与AWT的Panel的共有特征是都不能移动、放大、缩小或关闭;Panel组件没有无边框,JPanel则可以添加边框JPanel不能作为图形界面的顶端容器,只能作为一个中间容器组件,被加入到JFrame或JApplet等顶层容器中,用于提供空间,将小型的轻量级组件组合在一起JPanel 的缺省布局管理器方案为 FlowLayout。它的大小由包含在JPanel中的其他组件及顶层窗口的布局管理策略所共同
24、决定。JPanel组件可以相互嵌套,即JPanel组件可以加入到另一个JPanel对象内 40清华大学出版社Java程序设计(第2版)SwingSwing的基本组件的基本组件Swing还包含一些基本组件,它们是搭建GUI程序界面的基本元素。这些基本组件不像容器组件,不允许在自身区域内放置其他组件,而自己必须放置在容器中,并随着容器窗口一起显示。基本组件的位置、大小与排列状况通常会受到容器对象所采用的布局管理方案的影响Swing的基本组件类由JComponent继承而来,类名一律以英文字母“J”为首字母。这些组件类位于javax.swing包中,GUI应用程序要使用它们,必须先用“import
25、javax.swing.*;”语句导入该包中的类 41清华大学出版社Java程序设计(第2版)SwingSwing组件类的继承结构组件类的继承结构 42清华大学出版社Java程序设计(第2版)SwingSwing主要的主要的基本基本组件组件 43清华大学出版社Java程序设计(第2版)标签标签标签标签组件组件组件组件JLabelJLabelJLabelJLabelJlabel是静态组件,能够显示文字和图像图标,而不能够对显示内容进行编辑操作JLabel类主要的构造方法如下表所示:44清华大学出版社Java程序设计(第2版)标签标签标签标签JLabelJLabel常用的方法常用的方法常用的方法常
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形化用户界面设计 图形 化用 界面设计
限制150内