教学课件第九章 GUI界面设计.ppt
《教学课件第九章 GUI界面设计.ppt》由会员分享,可在线阅读,更多相关《教学课件第九章 GUI界面设计.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PPT模板下载:/moban/ 行业PPT模板:/hangye/ 节日PPT模板:/jieri/ PPT素材下载:/sucai/PPT背景图片:/beijing/ PPT图表下载:/tubiao/ 优秀PPT下载:/xiazai/ PPT教程: /powerpoint/ Word教程: /word/ Excel教程:/excel/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/ 试卷下载:/shiti/ 教案下载:/jiaoan/ 字体下载:/ziti/ 教学课件第九章 GUI界面设计LOGO Company Logo在本章中,我们将会学到:39.3S
2、wing组件介绍组件介绍 39.1GUI组件的构造和使用组件的构造和使用 39.2布局管理器布局管理器 Company Logo9.1 GUI组件 9.1.1抽象窗口工具包(抽象窗口工具包(AWT:Abstract Window Toolkit) 抽象窗口工具包(抽象窗口工具包(Abstract Window Toolkit)简称:)简称:AWT,是为,是为Java程序提供图形用户界面(程序提供图形用户界面(Graphics User Interface :GUI)的一组)的一组API。主要功能包括:用户界面组件、界面布局设计和管理、图形图像处理、。主要功能包括:用户界面组件、界面布局设计和管
3、理、图形图像处理、事件处理等。事件处理等。下面是下面是AWT包中部分重要类和子包:包中部分重要类和子包:1)java.awt.Component :抽象类,是:抽象类,是AWT包所有组件类的超类;包所有组件类的超类;2)java.awt.datatransfer :提供数据传输和剪贴板功能的包:提供数据传输和剪贴板功能的包3)java.awt.dnd :提供用户拖曳操作功能的包:提供用户拖曳操作功能的包4)java.awt.event :提供事件处理功能的包:提供事件处理功能的包5)java.awt.image :提供图像处理功能的包:提供图像处理功能的包6)java.awt.peer :提供
4、:提供AWT程序运行所需界面的同位体运行程序运行所需界面的同位体运行7)javax.swing :Swing组件包组件包组件是构成组件是构成GUI的基本元素,的基本元素,Component类是类是AWT包所有组件类的超类,它为其它子类提供了很多组件设计功包所有组件类的超类,它为其它子类提供了很多组件设计功能,如:位置、大小、字体、颜色、同位体等。能,如:位置、大小、字体、颜色、同位体等。“同位体同位体”(peer)是个比较难理解的概念,简单来)是个比较难理解的概念,简单来讲,同位体是对窗体界面系统的抽象。当程序员调用讲,同位体是对窗体界面系统的抽象。当程序员调用AWT对象时,调用被转发到该对象
5、所对应的一个对象时,调用被转发到该对象所对应的一个Peer上,再由上,再由Peer调用本地对象方法,完成对象的显示。调用本地对象方法,完成对象的显示。 图图9-1表达了一个表达了一个AWT的的Frame组件是如何通过同位体显示出来的。组件是如何通过同位体显示出来的。 并且,从同位体的使用机制来看,并且,从同位体的使用机制来看,AWT包组件的显示要受到本地平台的影响,因此现在大多使用包组件的显示要受到本地平台的影响,因此现在大多使用Swing包来代替包来代替AWT包。除包。除AWT包之外,包之外,Swing包也提供了包也提供了GUI设计功能,它们都是设计功能,它们都是Java基本类库基本类库(J
6、FC:Java Foundation Class)的一部分,不过)的一部分,不过Swing提供了比提供了比AWT包更强大的功能,且具备完全包更强大的功能,且具备完全跨平台的能力,跨平台的能力,Swing包将在后面章节介绍。包将在后面章节介绍。AWT作为最基本的组件包,掌握了它有助于学习其它组作为最基本的组件包,掌握了它有助于学习其它组件功能,因此还是有详细介绍的必要。件功能,因此还是有详细介绍的必要。 图图9-2是是Windows平台中的部分平台中的部分AWT组件。组件。 图图9-3描述了描述了AWT包中组件类的层次关系。包中组件类的层次关系。Company Logo图图9-1 AWT组件的同
7、位体调用机制组件的同位体调用机制 FrameAWTComponentPeerComponentPeerFrame系统系统平台平台显示显示系统系统Company Logo图图9-2 AWT组件外观组件外观 TextFieldCheckboxTextAreaLabelChoiceListCheckboxBCompany Logo图图9-3 AWT包中组件类的层次包中组件类的层次 CanvasButtonScrollbarListTextComponentCheckboxChoice LabelContainer容器容器组件组件符号表示:符号表示:MenuComponentObjectCompone
8、ntMenuBarMenuItemMenuTextFieldTextAreaScrollPanelPanelWindowAppletFrameDCompany Logo9.1.2 GUI组件与容器 表表9-1 Component组件类的常用方法组件类的常用方法 常用方法常用方法功能功能addXXXListeneraddXXXListener( (XXXListenerXXXListener l) l)添加指定的添加指定的XXX监听器,接收此组件发出的事件监听器,接收此组件发出的事件setBackgroundsetBackground( (ColorColor c) c)设置组件的背景色设置组件
9、的背景色getBackgroundgetBackground()()获得组件的背景色获得组件的背景色setForegroundsetForeground( (ColorColor c) c)设置组件的前景色设置组件的前景色getForegroundgetForeground()()获得组件的前景色获得组件的前景色setFontsetFont( (FontFont f) f)设置组件的字体设置组件的字体getFontgetFont()()获得组件的字体获得组件的字体getSizegetSize()()返回组件的大小返回组件的大小getWidthgetWidth()()返回组件的当前宽度返回组件的
10、当前宽度getHeight()getHeight()返回组件的当前高度返回组件的当前高度getXgetX()()返回组件原点的当前返回组件原点的当前 x 坐标坐标getYgetY()()返回组件原点的当前返回组件原点的当前 y 坐标坐标paintpaint( (GraphicsGraphics g) g)绘制此组件绘制此组件repaintrepaint()()重绘此组件重绘此组件requestFocusrequestFocus()()请求此组件获得输入焦点,并且此组件的顶层组件成为获得焦点的请求此组件获得输入焦点,并且此组件的顶层组件成为获得焦点的 WindowsetBoundssetBoun
11、ds(int x, int y, int width, int height)(int x, int y, int width, int height)移动组件并调整其大小移动组件并调整其大小setEnabledsetEnabled(boolean b)(boolean b)根据参数根据参数 b 的值启用或禁用此组件的值启用或禁用此组件setVisiblesetVisible(boolean b)(boolean b)根据参数根据参数 b 的值显示或隐藏此组件的值显示或隐藏此组件toStringtoString()()返回此组件及其值的字符串表示形式返回此组件及其值的字符串表示形式update
12、update( (GraphicsGraphics g) g)更新组件更新组件Company Logo一、一、AWT容器组件容器组件1、窗体(框架)(、窗体(框架)(Frame)Frame类是类是Window类的子类,它具备边框,标题栏,系统菜单,类的子类,它具备边框,标题栏,系统菜单,最大、最小化按钮,是一个具备完全功能的窗体。最大、最小化按钮,是一个具备完全功能的窗体。它的构造方法如下:它的构造方法如下:vFrame(); 默认构造方法,创建没有标题的窗体默认构造方法,创建没有标题的窗体vFrame(String title);创建以创建以title为标题栏文字的窗体其主要成为标题栏文字的
13、窗体其主要成员方法如下:员方法如下:vsetSize(int width,int height);为窗体设置大小,为窗体设置大小,width为窗体为窗体宽度,宽度,height为高度为高度vpack();以紧凑组件的方式设置窗体大小以紧凑组件的方式设置窗体大小vsetTitle(String title);为窗体设置标题为窗体设置标题vsetVisible(boolean b);为窗体设置可见性,默认时窗体为不为窗体设置可见性,默认时窗体为不可见。可见。例例9-1:创建简单窗体:创建简单窗体 例例9-2:创建简单窗体另一种形式:创建简单窗体另一种形式 Company Logo例例9-1:创建简
14、单窗体:创建简单窗体import java.awt.*;public class FrameDemo extends Frame public FrameDemo(String title) /自定义构造方法,自定义构造方法,title为窗体标题为窗体标题 super(title); /调用超类的带参数调用超类的带参数 的构造方法的构造方法 this.setSize(200,100); setVisible(true); public static void main(String args) new FrameDemo(简单窗体简单窗体); 【运行结果运行结果】 (显示一个简单的窗口,如图所
15、示。)(显示一个简单的窗口,如图所示。) Company Logo例例9-2:创建简单窗体另一种形式:创建简单窗体另一种形式import java.awt.*;public class FrameDemo extends Frame Frame f=new Frame(); Label la1=new Label(您好,这是您好,这是Label组件!组件!); public FrameDemo() f.add(la1); f.setTitle(简单窗体简单窗体); f.pack(); f.setVisible(true); public static void main(String args
16、) new FrameDemo(); 【运行结果运行结果】(同样显示一个简单的窗口,内部包含一个标签组件,如图所示。)(同样显示一个简单的窗口,内部包含一个标签组件,如图所示。) Company Logo2、对话框(、对话框(Dialog)对话框是可以接受用户输入的弹出式窗体,它也是一种带边框的容器,与对话框是可以接受用户输入的弹出式窗体,它也是一种带边框的容器,与Frame不不同的是对话框依赖于其它的窗体,当窗体最小化时,对话框也会随之最小化。同的是对话框依赖于其它的窗体,当窗体最小化时,对话框也会随之最小化。对话框可分为模态对话框(对话框可分为模态对话框(model)和非模态对话框()和非
17、模态对话框(modelless),其中),其中模态对话框只能响应对话框范围内的事件,对话框外部的事件则不能响应;模态对话框只能响应对话框范围内的事件,对话框外部的事件则不能响应;而非模态对话框则不受这个限制。所以模态对话框通常用于注册窗口或而非模态对话框则不受这个限制。所以模态对话框通常用于注册窗口或“另另存为存为”窗口等必须等用户首先响应的情况。窗口等必须等用户首先响应的情况。Dialog的常用构造方法如下:的常用构造方法如下:Dialog(Frame frm);创建一个不可见、无标题的非模式的对话框,相关联的窗体是;创建一个不可见、无标题的非模式的对话框,相关联的窗体是框架类的对象框架类的
18、对象frm。vDialog(Frame frm, String title, boolean modal);创建一个不可见、以;创建一个不可见、以title内容为标题的对话框,相关联的窗体是框架类的对象内容为标题的对话框,相关联的窗体是框架类的对象frm,第二个参数为,第二个参数为true表示创建模式对话框,为表示创建模式对话框,为false表示创建非模式对话框。表示创建非模式对话框。vDialog的方法继承自的方法继承自Component和和Window,所以它具备,所以它具备Component和和Window类的所有特征,如类的所有特征,如setVisible()方法等,其它重要方法如下:
19、方法等,其它重要方法如下:vboolean isModal( );返回对话框的类型,模式对话框返回;返回对话框的类型,模式对话框返回true,否则,返回,否则,返回false。vvoid setModal(boolean b);设置对话框的类型,参数;设置对话框的类型,参数true表示设置模式对表示设置模式对话框,为话框,为false表示设置非模式对话框。表示设置非模式对话框。 例例9-3:创建模态对话框:创建模态对话框 Company Logo例例9-3:创建模态对话框:创建模态对话框import java.awt.*;public class MyFrame extends Frame B
20、utton btnOpen=new Button(“打开打开”); MyFrame(String s) super(s); / 调用父类构造方法调用父类构造方法 add(btnOpen);/ 将按钮对象添加到窗体中将按钮对象添加到窗体中 setSize(200,150); setVisible(true); / 设置窗体是可见的设置窗体是可见的 public static void main(String args) MyFrame f=new MyFrame(“窗口窗口”); / 创建窗体,标题为创建窗体,标题为“窗口窗口” MyDialog dlg=new MyDialog(f,“登录对话
21、框登录对话框”,true);/ 创建对话框创建对话框 class MyDialog extends Dialog /对话框类对话框类 MyDialog(Frame f,String s,boolean b) / 构造方法,构造方法,f是与对话框相关的窗体是与对话框相关的窗体 super(f,s,b); / 调用父类的构造方法,对话框将依赖于调用父类的构造方法,对话框将依赖于f窗体窗体 setSize(120,50); setVisible(true); / 设置对话框可见设置对话框可见 【运行结果运行结果】(如图所示:登录对话框再窗体的前方,在未关闭对话框的前提下不能操作窗体,即(如图所示:登
22、录对话框再窗体的前方,在未关闭对话框的前提下不能操作窗体,即“打开打开”按钮无法使用)按钮无法使用) Company Logo3、面板(、面板(Panel)面板是一种容器,与面板是一种容器,与Window类的子类不同的是:面板类的子类不同的是:面板(及其子类)无边框、无标题,不能被移动、放大、(及其子类)无边框、无标题,不能被移动、放大、缩小或关闭。因此,面板不能作为独立的容器使用,缩小或关闭。因此,面板不能作为独立的容器使用,通常它作为中间容器,用以容纳其它组件,或子面通常它作为中间容器,用以容纳其它组件,或子面板。通常面板被放置在其他能独立使用的容器中,板。通常面板被放置在其他能独立使用的
23、容器中,如放置在窗体内。如放置在窗体内。Panel类的构造方法如下:类的构造方法如下:vPanel( );创建一个使用默认的布局管理器的面板。;创建一个使用默认的布局管理器的面板。vPanel(LayoutManager layout);创建一个使用指;创建一个使用指定布局管理器的面板。定布局管理器的面板。 例例9-4:面板的使用:面板的使用 Company Logo例例9-4:面板的使用:面板的使用import java.awt.*;public class MyFrame extends Frame Button btnOpen=new Button(打开打开); Button btnCl
24、ose=new Button(关闭关闭); Panel p=new Panel(); MyFrame(String s) super(s); / 调用父类构造方法调用父类构造方法 p.setBackground(Color.CYAN); /将面板将面板p背景色设为青色背景色设为青色 add(p); /把面板把面板p添加到窗口中添加到窗口中 p.add(btnOpen); / 将按钮添加到面板中将按钮添加到面板中 p.add(btnClose); setSize(200,100); setVisible(true); public static void main(String args) My
25、Frame f=new MyFrame(窗口窗口); /创建框架(窗口),标题为创建框架(窗口),标题为窗口窗口“ 【运行结果运行结果】(如图所示:窗体包含一个青色面板,此面板中包含两个按钮)(如图所示:窗体包含一个青色面板,此面板中包含两个按钮) Company Logo二、二、AWT基本组件基本组件 1、按钮(、按钮(Button)Button的构造方法:的构造方法:Button(String label); 常用成员方法:常用成员方法:setLabel(String label); 将按钮的标签文字设置为指定的字符串将按钮的标签文字设置为指定的字符串getLabel(); 获得此按钮的标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件第九章 GUI界面设计 教学 课件 第九 GUI 界面设计
限制150内