java教学课件_awt_第1页
java教学课件_awt_第2页
java教学课件_awt_第3页
java教学课件_awt_第4页
java教学课件_awt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、第第6章章 Java图形界面图形界面 学习导读学习导读n首先,我们学习一些基本的图形编程知识,包括窗口的显示及外观设置、在窗口中显示文字和图像等;n然后,系统地介绍图形用户界面中常用组件的用法,如布局管理器、文本框、复选框、菜单、对话框等。 教学安排教学安排nAWT简介nAWT基本组件n窗口及菜单设计n布局管理器nJava图形设计nJava2D6.1 AWT简介简介 nJava1.0Java1.0的出现带来了抽象窗口工具箱的出现带来了抽象窗口工具箱(AWT)AWT)。设计。设计目标是希望构建一个通用的目标是希望构建一个通用的GUIGUI,使得利用它编写的程,使得利用它编写的程序能够运行在所有的

2、平台上,以实现序能够运行在所有的平台上,以实现SunSun公司提出的口公司提出的口号号“一次编写,随处运行一次编写,随处运行”。n在在Java1.2Java1.2中,中,SunSun公司推出了新的用户界面库:公司推出了新的用户界面库:SwingSwing。相对。相对AWTAWT来说,来说,SwingSwing功能更强大、使用更方功能更强大、使用更方便,它的出现使得便,它的出现使得JavaJava的图形用户界面上了一个台阶。的图形用户界面上了一个台阶。n但是,但是,Swing并没有代替并没有代替AWT。在。在Java1.1中,中,AWT事件处理模型有了根本改变。事件处理模型有了根本改变。Swin

3、g使用的仍然是使用的仍然是Java1.1的事件处理模型。(在本书第的事件处理模型。(在本书第14章将介绍章将介绍Java Swing编程)编程) 6.1 AWT简介简介 n1、AWT的功能的功能1)丰富的图形界面组件。)丰富的图形界面组件。2 2)强大的事件处理模型图形和图像工具,包括形)强大的事件处理模型图形和图像工具,包括形状、颜色和字体。状、颜色和字体。3 3)布局管理器,可以进行灵活的窗口布局,设计)布局管理器,可以进行灵活的窗口布局,设计特定窗口的尺寸和屏幕分辨率。特定窗口的尺寸和屏幕分辨率。4 4)无关数据传送类,可以通过本地平台的剪贴板)无关数据传送类,可以通过本地平台的剪贴板来

4、进行剪切和粘贴操作。来进行剪切和粘贴操作。5 5)打印和无鼠标操作。)打印和无鼠标操作。n见书见书p94表表61 6.1 AWT简介简介 n2、AWT的分类的分类(1)基本组件)基本组件 基本组件是图形界面的最小单位,基本组件是图形界面的最小单位,里面不再包含其他的成分,如:按钮、里面不再包含其他的成分,如:按钮、Button 复复选框选框Checkbox 、组合框、组合框Choice 、列表、列表List、文本、文本域域 Textfield、多行文本域、多行文本域Textarea、静态文本、静态文本Label以及滚动条以及滚动条Scrollbar等。等。(2)包容器()包容器(Contain

5、er) 包容器是一种特殊的包容器是一种特殊的组件,用来包含其他组件,如:面板组件,用来包含其他组件,如:面板Panel、窗口、窗口 Windows 、对话框、对话框Dialog、文件对话框、文件对话框 Filedialog和框架和框架Frame等等 6.1 AWT简介简介 n3、AWT的类层次的类层次C o m p o n e n tB u tto n C a n v a s C h e c k b o x L a b e l L istS c ro llb a r T e x tfie ld T e x ta re aC o n ta in e rP a n e lW in d o wF r

6、a m eD ia ligF ile d ia lig6.1 AWT简介简介 n4、简单实例、简单实例n(1)用于)用于Java Application 见例见例6。1n(2)用于)用于Java AWT见例见例6。26.2 AWT基本组件基本组件 n1、Label(标签)(标签)构造函数:构造函数: Label():创建空的标签。():创建空的标签。 Label(String):创建一个带初始字符串的):创建一个带初始字符串的标签。标签。 Label(String,int):创建一个带初始字符):创建一个带初始字符串及指定对齐方式的标签。其中对齐方式有几种串及指定对齐方式的标签。其中对齐方式有

7、几种形式:形式: Label.LEFT(左对齐)、(左对齐)、 Label.RIGHT(右对齐)、(右对齐)、 Labe .CENTER(居中对齐)(居中对齐) 6.2 AWT基本组件基本组件 方法:方法:void setText(String) 设置显示内容设置显示内容String getText() 获取显示内容获取显示内容见书例见书例6。36.2 AWT基本组件基本组件 n 2、文本域文本域(Textfield) 构造函数:构造函数: TextField():创建空的文本域;():创建空的文本域; TextField(int):创建具有指定长度的文本域。):创建具有指定长度的文本域。 T

8、extField(String):创建带有初始文本内容):创建带有初始文本内容的文本域。的文本域。 TextField(String, int):带有初始文本内容并):带有初始文本内容并具有指定长度的文本域。具有指定长度的文本域。 6.2 AWT基本组件基本组件 方法:方法:void setText(String) 设置文本域中的文本值设置文本域中的文本值String getText() 返回文本域中的输入文本值返回文本域中的输入文本值见例见例6。46.2 AWT基本组件基本组件 n 3、按钮(、按钮(Button) Button():建立一个没有标示字符串的新按钮:建立一个没有标示字符串的新

9、按钮类对象。类对象。 Button (String Label):建立一个标示字符串为:建立一个标示字符串为Label的新按钮类对象。的新按钮类对象。 见例见例656.2 AWT基本组件基本组件 n4、复选框组件(复选框组件(Checkbox) n5、单选钮组件单选钮组件 (CheckboxGroup)当当Checkbox利用利用CheckboxGroup类分组时,就是类分组时,就是当选框当选框见例见例6。6n6、滚动条组件(、滚动条组件(Scrolbar)见例见例6。76.2 AWT基本组件基本组件 n7、多行文本组件多行文本组件TextArea 见例见例6。8n8、下拉列表组件(下拉列表组

10、件(Choice) 见例见例6。9n9、列表组件(列表组件(List) 见例见例6。106.2 AWT基本组件基本组件 n 10、画布组件(、画布组件(Canvas) Canvas是图形操作的容器,但它不能包含其他是图形操作的容器,但它不能包含其他GUI组件,它只能为图形操作提供容器平台,进组件,它只能为图形操作提供容器平台,进而在其上自由地进行图形操作。而在其上自由地进行图形操作。 构造函数构造函数Canvas () 6.2 AWT基本组件基本组件 方法:方法:Void paint(Graphics) 在画布上绘图在画布上绘图见例见例6。11 6.2 AWT基本组件基本组件 n11、面板组件

11、(、面板组件(Panel) Panel是最简单的容器组件,本身是一个矩形区域,是最简单的容器组件,本身是一个矩形区域,可以在其中放入各种组件见例可以在其中放入各种组件见例6。12 n12、Applet 6.3 窗口和菜单设计窗口和菜单设计 n 1、框架窗口组件(、框架窗口组件(Frame) Frame是可独立运行的主窗口,用于进行开发桌是可独立运行的主窗口,用于进行开发桌面应用程序。面应用程序。 图标标题6.3 窗口和菜单设计窗口和菜单设计 n 主要方法:主要方法:nvoid setIconImage(Image)设置窗口的图标设置窗口的图标nvoid setMenuBar(MenuBar)设

12、置窗口的菜单栏设置窗口的菜单栏nvoid setTitle(String)设置窗口的标题设置窗口的标题nvoid setResizable(boolean)设置窗口的可缩放标设置窗口的可缩放标志志n见例见例6。146.3 窗口和菜单设计窗口和菜单设计 n 2、对话框(、对话框(Dialog)对话框与对话框与Frame一样,也是一个容器组件,可以一样,也是一个容器组件,可以在上面放置各类组件在上面放置各类组件 Dialog不能自动实现菜单容器类。不能自动实现菜单容器类。Dialog依赖于其他的窗口,当其所依赖的窗口依赖于其他的窗口,当其所依赖的窗口最小化时,对话框也随之消失;当其所依赖的窗最小化

13、时,对话框也随之消失;当其所依赖的窗口恢复原样时,对话框也自动恢复。口恢复原样时,对话框也自动恢复。Dialog有模式(有模式(model)和非模式()和非模式(modeless)两种,模式对话框只让应用程序响应对话框内的两种,模式对话框只让应用程序响应对话框内的事件,而其他窗体中的事件则不能响应;非模式事件,而其他窗体中的事件则不能响应;非模式对话框则可以响应其他窗体中的事件。见例对话框则可以响应其他窗体中的事件。见例6。156.3 窗口和菜单设计窗口和菜单设计 n3、文件对话框(、文件对话框(FileDialog) 主要用于打开和保存文件时让用户选择文件名。主要用于打开和保存文件时让用户选

14、择文件名。通常,文件对话框是由操作系统提供的标准对话通常,文件对话框是由操作系统提供的标准对话框。框。 见例见例6。16 n4、菜单组件、菜单组件6.4 布局管理器布局管理器 n容器组件中可以放置多个组件,使用布局管理容器组件中可以放置多个组件,使用布局管理器可以确定这些组件的位置和大小器可以确定这些组件的位置和大小 n每一个容器组件都有一个默认的布局管理器,每一个容器组件都有一个默认的布局管理器,也可以通过也可以通过setLayout方法来设置其他布局管理方法来设置其他布局管理器器 n布局管理器:布局管理器:FlowLayout、BorderLayout、GridLayout、GridBag

15、Layout、CardLayout、null 6.4 布局管理器布局管理器 n1、FlowLayout布局管理器布局管理器 FlowLayout布局管理是一种最简单的布局管理布局管理是一种最简单的布局管理方法,是方法,是Panel的默认布局的默认布局 它以流式的方式,即组件按每行先后自左向右放它以流式的方式,即组件按每行先后自左向右放置,一行放不下时再换行置,一行放不下时再换行 FlowLayout的默认对齐方式为居中对齐的默认对齐方式为居中对齐 6.4 布局管理器布局管理器 n 构造函数:构造函数: FlowLayout():创建默认的():创建默认的FlowLayout布局管理器。布局管理

16、器。 FlowLayout(int):以指定的对齐方式创建):以指定的对齐方式创建FlowLayout布局管理器。其中的参数有布局管理器。其中的参数有FlowLayout.LEFT(左对齐左对齐)、FlowLayout.RIGHT(右对齐)、(右对齐)、FlowLayout.CENTER(居中对齐)。(居中对齐)。 FlowLayout(int,int,int):以指定的对齐方式及间距创):以指定的对齐方式及间距创建建FlowLayout布局管理器。其中第一个参数为对齐方式,布局管理器。其中第一个参数为对齐方式,第二个参数为组件间间距,第三个参数为列间距。第二个参数为组件间间距,第三个参数为列

17、间距。n见例见例6。18 6.4 布局管理器布局管理器 n 2、 BorderLayout布局管理器布局管理器 BorderLayout是是Frame和和Dialog的默认布局的默认布局它将整个容器的区域分为东、西、南、北、中五它将整个容器的区域分为东、西、南、北、中五个部分加入组件时,需指明放置的位置个部分加入组件时,需指明放置的位置 6.4 布局管理器布局管理器 n构造函数构造函数BorderLayout():创建默认的():创建默认的BorderLayout。 BorderLayout(int,int):以指定的行间距和):以指定的行间距和列间距创建列间距创建BorderLayout。

18、见例见例6。196.4 布局管理器布局管理器 n 3、GridLayoutGridLayout布局将容器区域划分成布局将容器区域划分成m行行*n列,大列,大小相等的格子,而容器中的组件就放入这些格子小相等的格子,而容器中的组件就放入这些格子中,占用大小完全相同的一格。中,占用大小完全相同的一格。构造函数:构造函数: GridLayout():创建默认的():创建默认的GridLayout布布局,所有组件在一行中显示。局,所有组件在一行中显示。 GridLayout(int,int):按指定行数和列数创):按指定行数和列数创建建GridLayout布局。布局。 GridLayout(int,in

19、t,int,int):按指定行数、):按指定行数、列数、行间距和列间距创建列数、行间距和列间距创建GridLayout布局。布局。 见例见例6。20 6.4 布局管理器布局管理器 n 4、GridBagLayout布局管理器布局管理器GridBagLayout布局将显示区域分成很多矩形小布局将显示区域分成很多矩形小单元,每个组件可以占用一个或多个单元,从而单元,每个组件可以占用一个或多个单元,从而可以指定每个组件所占空间的大小。可以指定每个组件所占空间的大小。6.4 布局管理器布局管理器 n 5、CardLayoutCardLayout将容器中的组件(通常是面板)像扑将容器中的组件(通常是面板

20、)像扑克牌一样排列,每次只能显示最上面的一张。克牌一样排列,每次只能显示最上面的一张。 构造函数构造函数 CardLayout():创建默认的():创建默认的CardLayout布布局管理器。局管理器。 CardLayout(int,int):以指定的行间距和列):以指定的行间距和列间距创建间距创建CardLayout布局管理器。见例布局管理器。见例6。22 6.4 布局管理器布局管理器 n 主要方法:主要方法: void first() 显示第一个加入到显示第一个加入到CardLayout的组件的组件void last()显示最后一个加入到()显示最后一个加入到CardLayout的的组件组

21、件void next()显示当前组件的下一个组件,如当()显示当前组件的下一个组件,如当前是最后一个,则下一个为第一个前是最后一个,则下一个为第一个void previous()显示当前组件的前一个组件,()显示当前组件的前一个组件,如当前是第一个,则下一个为最后一个如当前是第一个,则下一个为最后一个6.4 布局管理器布局管理器 n 6、nullnull布局管理器将主动权交给用户,由用户使用坐布局管理器将主动权交给用户,由用户使用坐标系统来放置每个组件,即调用组件的标系统来放置每个组件,即调用组件的setBounds()方法来设置其放置位置和大小。方法来设置其放置位置和大小。6.5 Java图

22、形设计图形设计 n Java语言的类库中提供了丰富的绘图方法,语言的类库中提供了丰富的绘图方法,其中大部分对图形、文本、图像的操作方法都其中大部分对图形、文本、图像的操作方法都定义在定义在Graphics类中类中n在头部先写上:在头部先写上:import java.awt. Graphics。npaint( )方法中有一个方法中有一个Graphics对象参数,因对象参数,因此,我们只要在这个对象上进行图形、文本及此,我们只要在这个对象上进行图形、文本及图像的绘制操作,就可以在屏幕上看到所显示图像的绘制操作,就可以在屏幕上看到所显示的结果。的结果。6.5 Java图形设计图形设计 n 1、图形坐

23、标、图形坐标Java图形系统采用的二维图形系统采用的二维Java的坐标原点的坐标原点(0,0)在屏幕的左上角,水平向右在屏幕的左上角,水平向右为为X轴的正方向,竖直向下为轴的正方向,竖直向下为Y轴的正方向轴的正方向每个坐标点的值表示屏幕上的一个像素点的位每个坐标点的值表示屏幕上的一个像素点的位置,因此,所有坐标点的值都取整数。置,因此,所有坐标点的值都取整数。6.5 Java图形设计图形设计 n 2、颜色、颜色Color构造函数:构造函数:Color(int r, int g, int b): 其中每个参数的值都在其中每个参数的值都在0到到255之间,数值越大就表明这种颜色的成份越之间,数值越

24、大就表明这种颜色的成份越重。例如重。例如(0,0,0)代表黑色,(代表黑色,(255,0,0)代表红色。)代表红色。主要方法:主要方法:setColor(Color c)调用调用Graphics类中的类中的setColor( )方法设置系统当前所用颜色方法设置系统当前所用颜色 见例见例6。246.5 Java图形设计图形设计 n 3、文本与字体、文本与字体Font创建:创建:Font(String name, int style, int size):创建指定三个:创建指定三个参数字体名、字体风格和尺寸大小的字体。参数字体名、字体风格和尺寸大小的字体。其中字体风格有如下三种:其中字体风格有如下

25、三种:Font.BOLD(粗体)、(粗体)、Font.ITALIC(斜体)、(斜体)、Font.PLAIN(普通体)。(普通体)。也可以进行相加来生成复合字体风格,例如想让也可以进行相加来生成复合字体风格,例如想让style既是粗体又是斜体:既是粗体又是斜体:F o n t f n = n e w F o n t ( T i m e s R o m a n , Font.BOLD+Font.ITALIC, 28) 6.5 Java图形设计图形设计 n 方法:方法:nsetFont(Font f)n见例见例6。256.5 Java图形设计图形设计 n 4、Java中图形的绘制中图形的绘制6.5

26、Java图形设计图形设计 n 1、画线画线在在Java的的Graphics类中提供画线功能的是类中提供画线功能的是drawLine( )方法,其调用格式如下:方法,其调用格式如下:drawLine(int x1,int y1,int x2,int y2)该方法需要设置四个参数,其中该方法需要设置四个参数,其中x1,y1表示线段的表示线段的一个坐标点,一个坐标点,x2,y2表示线段的另一个坐标点。表示线段的另一个坐标点。6.5 Java图形设计图形设计 n 2矩形的绘制矩形的绘制nGraphics类中提供了三种类型的矩形,它们分类中提供了三种类型的矩形,它们分别是普通矩形、圆角矩形和立体矩形。而

27、每一种别是普通矩形、圆角矩形和立体矩形。而每一种矩形都提供两种不同风格的方法,一种是仅画出矩形都提供两种不同风格的方法,一种是仅画出矩形的边框;另一种是不仅画出边框,并且还用矩形的边框;另一种是不仅画出边框,并且还用相同的颜色将整个矩形区域填满。相同的颜色将整个矩形区域填满。6.5 Java图形设计图形设计 n (1)普通矩形)普通矩形 画普通矩形需调用画普通矩形需调用drawRect( )或或fillRect( )方法,它们的调用格式如下:方法,它们的调用格式如下: drawRect(int x, int y, int width, int height) /边框型风格边框型风格 fillR

28、ect(int x, int y, int width, int height) /填充型风格填充型风格其中头两个参数分别表示矩形左上角的其中头两个参数分别表示矩形左上角的x坐标和坐标和y坐标,后两个参数分别表示矩形的宽度和高度。坐标,后两个参数分别表示矩形的宽度和高度。6.5 Java图形设计图形设计 n (2)立体矩形)立体矩形 立体矩形也可以说是三维矩形。其立体矩形也可以说是三维矩形。其实仅仅是在矩形的边框上增加一点阴影,使矩形看上实仅仅是在矩形的边框上增加一点阴影,使矩形看上去相对表平面好像有凸出或凹下的效果,其调用方法去相对表平面好像有凸出或凹下的效果,其调用方法的格式如下:的格式如

29、下:draw3DRect(int x, int y, int width, int height, boolean raised)fill3DRect(int x, int y, int width, int height, boolean raised) n这两个方法中的前四个参数与这两个方法中的前四个参数与drawRect( )方法中所方法中所用的参数含义是一样的,第五个参数用的参数含义是一样的,第五个参数raised便是定义便是定义该立体矩形是具有凸出(值为该立体矩形是具有凸出(值为true)还是凹下(值为)还是凹下(值为false)的效果。)的效果。 6.5 Java图形设计图形设计

30、n(3)圆角矩形)圆角矩形 也就是矩形的四个顶角呈圆弧也就是矩形的四个顶角呈圆弧状,每个圆弧其实是由四分之一的椭圆弧所构状,每个圆弧其实是由四分之一的椭圆弧所构成。画圆角矩形的两个方法的调用格式如下:成。画圆角矩形的两个方法的调用格式如下: drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)我们可以看出,它们除了具有和普通矩形含义

31、相我们可以看出,它们除了具有和普通矩形含义相同的前四个参数外,还多了两个用来描述圆角性同的前四个参数外,还多了两个用来描述圆角性质的参数。其中质的参数。其中arcWidth代表了圆角弧的横向直代表了圆角弧的横向直径;径;arcHeight代表了圆角弧的纵向直径。代表了圆角弧的纵向直径。 6.5 Java图形设计图形设计 n 3椭圆的绘制椭圆的绘制在在Java中绘制椭圆的方法是给出该椭圆的外接矩中绘制椭圆的方法是给出该椭圆的外接矩形作为参数,其调用格式与画普通矩形的方法相形作为参数,其调用格式与画普通矩形的方法相似:似: drawOval(int x, int y, int width, int

32、 height) /边框型风格边框型风格 fillOval(int x, int y, int width, int height) /填充型风格填充型风格这里这里x和和y不是椭圆的圆心坐标,而是该椭圆外接不是椭圆的圆心坐标,而是该椭圆外接矩形的左上角。矩形的左上角。6.5 Java图形设计图形设计 n4画弧画弧弧是椭圆的一部分,因而画弧的方法就相当于先画一个椭弧是椭圆的一部分,因而画弧的方法就相当于先画一个椭圆,而后取该椭圆中所需要的一部分。它们的调用格式如圆,而后取该椭圆中所需要的一部分。它们的调用格式如下:下: drawArc(int x, int y, int width, int h

33、eight,int startAngle, int arcAngle) /边框型风格边框型风格 fillArc(int x, int y, int width, int height,int startAngle, int arcAngle) /填充型风格填充型风格其中前四个参数的含义与画椭圆一样,因此也必须用矩形其中前四个参数的含义与画椭圆一样,因此也必须用矩形的观点来确定弧在坐标系统中的位置。后两个参数就是用的观点来确定弧在坐标系统中的位置。后两个参数就是用来定义椭圆的一部分:来定义椭圆的一部分:startAngle参数表示该弧从什么角度参数表示该弧从什么角度开始,开始,arcAngle参

34、数表示从参数表示从startAngle开始转了多少度。开始转了多少度。 6.5 Java图形设计图形设计 n 见例见例6。26 6.5 Java图形设计图形设计 n 多边形的绘制多边形的绘制nvoid drawPolygon(Polygon p)参数是多边形对象参数是多边形对象PolygonPolygon ,先定义,先定义PolygonPolygon对象,然对象,然后将点加入到该对象中,然后利用后将点加入到该对象中,然后利用drawPolygondrawPolygon进行多进行多边形的绘制:边形的绘制:Polygon p = new Polygon;p.addPoint(x1, y1);p.addPoint(x2, y2);.g.drawPolygon(p);n见例见例6。27 26.5 Java图形设计图形设计 n复制

温馨提示

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

评论

0/150

提交评论