JAVA图形用户界面的设计与实现

上传人:宝路 文档编号:47853142 上传时间:2018-07-05 格式:PPT 页数:74 大小:587.15KB
返回 下载 相关 举报
JAVA图形用户界面的设计与实现_第1页
第1页 / 共74页
JAVA图形用户界面的设计与实现_第2页
第2页 / 共74页
JAVA图形用户界面的设计与实现_第3页
第3页 / 共74页
JAVA图形用户界面的设计与实现_第4页
第4页 / 共74页
JAVA图形用户界面的设计与实现_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《JAVA图形用户界面的设计与实现》由会员分享,可在线阅读,更多相关《JAVA图形用户界面的设计与实现(74页珍藏版)》请在金锄头文库上搜索。

1、第7章 图形用户界面的设计与实现7.1 图形用户界面(GUI)概述界面设计的主要任务: (1)创建组成界面的各成分和元素,指定它们的属性 和位置关系; (2)定义界面事件和各元素对不同事件的响应,实现 界面与用户的交互功能;生成界面的类库:java.awt (abstract window toolkit) 抽象:操作定义在一个虚拟的窗口中进行,实现跨平 台;界面的元素和成分v容器v控制组件v用户自定义成分容 器(1)v容器(container):组织其他界面成分和元素 的单元,用来存放别的组件。v有三种类型的容器:Window、Panel和 ScrollPane。ContainerPanel

2、WindowScrollPaneAppletDialogFrameFileDialog容 器(2): Frame容器vWindow是能独立存在的容器,Frame是它的子类。Frame 是有边框容器,通常用作最外层容器,不能被其他容器包 含。vFrame方法:vFrame(String title);vadd():在Frame中加入其他组件。vpack()方法会自动确定Frame的大小,确保Frame容器中 的组件都会有与布局相适应的合理大小。vsetVisible(true):使Frame成为可见。Frame被创建后, 它是不可见的。v例子:见2007ch7srcSimpleFrame.jav

3、a容 器(3): Panel容器特点: 1)没有边框,不能被移动、缩放或关闭。 2)不能作为最外层图形界面的容器,不能单独存在 只能用做容器组件加入其他容器。 3)通常用于层次化界面组件管理。P260:例 7-20 TestPanel . javav例子:ch7srcMyFrame.java组件:图形用户界面的最小单元,用来完成与用户的交互 ;用户界面标准化的结果,例如:标签、文本框、按钮、菜 单等。使用组件的步骤: 1)创建组件类的对象,指定其属性; 2)使用某种布局策略; 3)将组件对象注册给对应的事件监听器,覆盖事件处理 方法,实现与用户交互的功能;组 件用户自定义成分:如绘制几何图形、

4、使用标 志图案等。 通常只能起到装饰、美化的作用,不能响应 用户的动作,不具有交互功能。用户自定义成分7.2 绘制图形利用 Graphics 类可以绘制文字及直线 、矩形、多边形、圆和椭圆等各种图形。 对于Application程序:创建 Canvas 对象 ,并将它加入界面容器中。Applet 类和 Canvas 类都有一个 paint ( ) 方法,系统会自动创建一个 Graphics 类的 实例作为其参数,实现各种图形绘制;Graphics 类的常用绘图方法 例7-1 DrawFigures.java (p185)drawLine ( int x1, int y1, int x2, in

5、t y2 ):绘制直线drawRect ( int x, int y, int width, int height ) :绘制矩形fillRect ( int x, int y, int width, int height ) :填充矩形设置字体Font类显示文字: Graphics 类的 drawString ( ) 方法, 在屏幕的指定位置显示字符串。Font 类:表示一种字体,包含字体类型、字型和 字号。如:Font fnt = new Font (“TimesRoman”, Font .BOLD, 12 );Font 类有三种字体:Font . PLAIN, Font .BOLD, F

6、ont . ITALIC 。使用字体:Graphics 类的 setFont ( ) 方法 如:g . setFont ( fnt ) ;btn.setFont(fnt);例7-2AvailableFonts . JavaGraphicsEnviroment类: The GraphicsEnvironment class describes the collection of GraphicsDevice objects and Font objects available to a Java(tm) application on a particular platform. 设置颜色Colo

7、r类Color 类对象:控制文字或图形的颜色;构造函数:public Color (int Red, int Green, int Blue);各参数 取值范围:0255 public Color (float Red, float Green, float Blue); 参数取值范围:0.01.0public Color (int RGB) ;参数的07位为红色分量 ,815位为绿色分量,1623位为蓝色分量例: Color blueColor = new Color (0, 0, 255); / 问这是 什么颜色?颜色设置:Graphics 类的 setColor ( ) 方法v使用自定义

8、的颜色: Color blueColor = new Color (0, 0, 255); g. setColor ( blueColor ) ;v使用 Color 类的颜色常量:g. setColor ( Color. black ) ; Color 类定义了 13 个静态颜色常量,包括 : black (0, 0 ,0 ) red (255,0,0)green (0,255,0) blue (0, 0,255) 等。对 GUI 组件,可用下列方法设置或获取组件 的背景色和前景色:public void setBackground ( Color c) ;public Color getBa

9、ckground ( ) ;public void setForeground ( Color c) ;public Color getForeground ( ) ;例7-3 UseColor. Java 问题:HTML文件中的参数是以什么形式、如 何传入字节码的?显示图像一、获取图像: Applet 类的 getImage ( ); public Image getImage ( URL url, String name) 该方法将指定图像文件的内容返回到 Image 对象 。方法中的参数 url 是一个 URL (统一资源定位 器)地址,也就是图像所在网址。name 是图像文 件名。Ja

10、va 支持的图像文件格式包括bmp,gif,jpeg 等。二、绘制图像: drawImage( Image img, int x, int y, ImageObserver observer ) 有4个参数:图像的 Image 对象,显示图 像的左上角 x、y 坐标,显示图像的容器 对象。如:g.drawImage (image,10,10,this); 例7-4DrawMyImage.java实现动画效果制作步骤:1)构造或获取动画的各帧;2)绘制各帧; 动画的各帧可以用绘图的方法绘制,也可在给定关键 帧的情况下,采用插值方法生成,还可以用 getImage ( ) 方法获取文件中的 gif

11、 或 jpg 格式图像。例 7-5:其中的 paint ( ) 方法一次显示一幅图像,并调 用 Thread . sleep ( ) 方法使程序休眠片刻,从而前一 副图像在屏幕上暂留,再显示下一幅图像,形成动画 。7.3 Java 的标准组件与事件处理v每一个可以触发事件的组件被当作事件源。v每一个事件都对应专门的监听者,监听者用 来接收和处理这种事件。v如果一个事件源注册了对应的监听者,那么 这种事件就会被监听者接收和处理。这种模 式称为“委托模型”。Java 的事件处理机制:委托事件模型事件源(可能产生事件的组件)注册:btn. addActionListener(监听者对象);Actio

12、nEvent 事件监听者(负责监听并处理事件的对象)实现接口:public void actionPerformed (ActionEvent e);触发事件调用并传递参数注册图7-5 委托事件模型事件与监听者接口要注意以下问题:v有哪些事件源,可能发生什么事件?v将事件源注册给哪个监听者?v监听接口包含什么方法?各代表对什么事件 的处理?v举例:见P215表格vAWT的事件处理模型:v监听者对象是实现监听者接口的类的实例。v事件源在事件发生时把事件对象发送给注册 的监听者。v监听者对象会使用事件对象中的信息来决定 如何响应事件。v注册监听者对象是通过调用事件源的 .addXXXListene

13、r()来实现的。如下: eventSourceObject.addEventListener(event ListenerObject);v并非每个事件类都只对应一个事件,例如: KeyEvent类对应 KEY_PRESSED,KEY_RELEASED,KEY_T YPED三个具体的事件。vKeyEvent类的getID()可以返回不同的常量 ,以此来判断具体的事件类型。v以 JButton为例,关心的事件就是按钮被 按下,想注册该事件,就需要调用 JButton 的addActionListener( ) 方法,该方法带一 个参数实现 ActionListener接口的对 象, Action

14、Listener接口只包含一个 actionPerformed( )方法,所以,将实现的 代码与JButton联系起来的方法就是在类里 实现ActionListener接口,而且将该类的对 象用JButton 的addActionListener( )方法 注册。这样 actionPerformed( )方法将在 按钮被按下时被回调。事件处理v用内部类实现监听接口:见例子 ButtonCounter.javav将容器类实现监听接口:见例子 FrameCounter.javav定义专门的外部类实现监听接口:见例子 OuterCounter.javav采用事件适配器:见例子AdapterCount

15、er.java, 注意适配器是类,不是接口。7.4 GUI 标准组件概述ComponentButton组件名CanvasTextAreaTextFieldListScrollbarLabelTextComponentCheckboxChoiceContainerDialogFrame WindowAppletPanelScrollPane容器FileDialog图7-7 AWT 组件层次关系图Component 类的常用方法public void add (PopupMenu popup):在组件上加上一个弹出菜单。public Color getBackground ( ): 获得组件的背景

16、色。public Font getFont ( ):获得组件使用的字体。public Color getForeground ( ):获得组件的前景色。public Graphics getGraphics( ):获得绘图用的 Graphics 对象。public void repaint ( int x, int y, int width, int height ):以指点的坐标 点为左上角,重画组件中指点宽、高的区域。public void setBackgound (Color c):设置组件的背景色。public void setEnable (boolean b):设置组件的使能状态。public void setFont (Font f ):设置组件的字体。public void setSize (int width, int height ):设置组件大小。public void setVis

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号