好文档 - 专业文书写作范文服务资料分享网站

JAVAGUI

天下 分享 时间: 加入收藏 我要投稿 点赞

图形用户界面设计

?Java的GUI简介 ? 自定义图形设计 –图形、文字、图象 ? Java 的标准组件 – 容器和组件 –GUI 的布局 ? 事件处理

图形用户界面(GUI) ?字符界面

–用字符串、命令行的方式与用户交互 ?图形用户界面:Graphics User Interface –用直观的图形来表示数据

–用直观、方便的GUI标准组件来接收命令 –GUI组成成分的标准化

使用图形的方式借助菜单、按钮等标准界面元素和鼠 标操作,来帮助用户方便地向计算机系统发出命令, 启动操作,并将系统运行的结果同样以图形的方式显 示给用户。

用户界面设计原则

?控制权在用户

?界面与操作的风格一致性 ?宽容(容错)性 ?简洁与美观并重

图形用户界面简介

?图形用户界面的构成 –容器:布局、安排 –标准组件

–用户自定义成分

?设计&实现图形用户界面的工作

–创建GUI各组成成分,并安排从属位置关系,根据具体需要对其进行排序,构成完整外观。 –定义GUI各成分对不同事件的响应,实现与用户的交互功能。 界面构成 界面元素

?容器是用来组织其他界面成分和元素的单元。 –可以形成容器的层次,构筑复杂结构 –Window(Frame、Applet、Dialog )

?组件是图形用户界面的基本单位,它里面不再包含其他的成分。 –GUI组件是图形用户界面标准化的结果。常用的组件有: 选择类的: 单选按钮、复选按钮、下拉列表; 文字处理类的: 文本框、文本区域 命令类的: 按钮、菜单等

–GUI组件的作用是完成与用户的交互。包括接收用户的命令、文本或选择输入,向用户显示一段文本或一个图形等。

界面元素

?用户自定义成分

– 显示文字、绘制图形、显示图象…

– 不能像标准组件一样被系统识别和承认,只起装饰作用。 – 不能响应用户的动作,不具有交互功能。

图形用户界面(GUI)

?Java的图形用户界面编程: –为方便图形用户界面的开发,设计了专门的类库 来生成各种标准图形界面元素和处理图形界面的 各种事件,这个用来生成图形界面的类库就是java.awt包。AWT是abstract window toolkit抽象窗 口工具集的缩写。

–AWT类库中的各种操作被定义在一个窗口中进行,开发人员用AWT开发出的图形用户界面可以适用于所有的平台系统。 AWT包

?Abstract Window Toolkit(抽象窗口工具集) –提供各种构成GUI的标准构件。

–AWT类库中的各种操作被定义在一个窗口中进行的。 –抽取不同软硬件平台中所实现的窗口的公共特性。 –依赖于具体平台系统实现:显示效果可能不同。 ?提供与机器无关的基本GUI标准组件 ?创建GUI应用程序 –Frame必不可少

它是带标题的顶层窗口,是构建应用程序图形界面的基础,它为应用程序实现人机交互提供了对话窗口

从一个简单窗口开始

?先来建一个空的窗口应用: Empty.java

绘制用户自定义成分

?用户自定义成分属于构成GUI的非标准部分 –无法响应用户事件

–一般仅仅起背景装饰、输出效果突出的作用 ?Java中的用户自定义成分 –显示文字 –绘制图形 –显示图片

绘制用户自定义成分

?一般在容器中(窗口)或画布上绘制。

?利用Java.awt类库中的类及其方法绘制用户自定义的图形界面成分。 ?Graphics类包含很多绘制图形和文字的方法 。

?首先要获得Graphics类的实例,然后利用其方法绘制。 ?Graphics类的实例一般作为相关方法的参数传递进来: paint(Graphics g) ?Java程序图形界面的 坐标设置

绘制图形及其相关方法

?drawLine(x1,y1,x2,y2) //直线 ?drawRect(x,y,w,h) //矩形

?drawOval(x,y,w,h) //圆或椭圆

?fillOval(x,y,w,h) //实心圆或椭圆 ?drawPolygon(X坐标数组,Y坐标数组,顶点个数)

//画多边形 ?drawArc (x,y,w,h,开始角度,弧度角度) ?setColor(Color c) //设置颜色 ?setFont(Font f) //设置字体 ?getColor() ?getFont()

绘制图形及其相关方法 ?从(x1,y1)到(x2,y2)画直线

–drawLine(x1,y1,x2,y2) 参数均为int

?画弧线drawArc(x,y,w,h,?,?) 参数均为int

–x,y为绘制弧形的左上角的坐标; w,h为弧形的宽度和高度;?为弧形的起始角,?为弧形的弧度, ?为正,表顺时针方向; ?为负,表逆时针方向。 ?以(x,y)为左上角、w为宽度、h为高度画矩形 –drawRect(x,y,w,h) 参数均为int ?fillRect(x,y,w,h)、clearRect(x,y,w,h) 绘制图形及其相关方法 ?画圆或椭圆

–drawOval(x,y,w,h)

–x,y为绘制圆或椭圆的左上角的坐标,w,h确定了 椭圆的宽度和高度 ?画实心圆或椭圆 –fillOval(x,y,w,h) ?画多边形

–drawPolygon(X坐标数组,Y坐标数组,顶点个数) 绘制图形及其相关方法 例子: sanmao.java

颜色控制

?表示颜色的类Color

显示的字符串或图形的颜色可以用Color类的对象来控制,每个Color 对象代表一种颜色,用户可以直接使用Color类中定义好的颜色常量,也可以通过调配红、绿、蓝三色的比例创建自己的Color对象

–Color(red,green,blue)来创建非缺省色

–调用Graphics对象的setColor()方法可把当前的缺省颜色改成新建的颜色 Color blueColor=new Color(0,0,255);

g.setColor(blueColor); Color类

?构造方法1(设置颜色)

Color c = new Color(int red, int green, int blue) 范围 :0~255

new Color(200,200,200) ?构造方法2

Color c = new Color(float red, float green, float blue)

范围 :0.0 ~1.0

?Color类定义了13种颜色常量值

Color.black, Color.blue, Color.gray, Color.red …...

对GUI的组件有四种与颜色相关的方法来设置和获取其背景色和前景色: setBackground(Color c);

getBackground(); setForeground(); getForeground(); 显示文字

?字体显示效果类:Font

一个Font类的对象表示了一种字体显示效果,包括字体类型、风格和字号。 Font mf = new Font(String 字体,int 风格,int 字号); –字体:TimesRoman, Courier, Arial等 –风格:三个常量

?Font.PLAIN, Font.BOLD, Font.ITALIC –字号:字的大小(磅数)

–设置当前使用的字体:setFont(Font fn) –获取当前使用的字体:getFont() ?例:Fonts.java

显示图象

?图形与图象,java支持gif和jpeg格式 ?保存二进制图象的java.awt.Image类 ?获取Image对象的方法

getImage( 图象文件所在的URL)

getImage( 图象文件所在的URL, 图象文件名) –Applet类以及java.awt.Toolkit中均有方法的定义

–注意:在application中只能使用Toolkit,而在Applet中,两者均可使用 显示图象

?在applet小程序中,可使用Applet类的getImage方法获得图象。 Image ig = getImage(…)

?而在application中就只能使用ToolKit类的getImage方法: Image ig = getToolkit().getImage(“文件名”);

?然后用Graphics类的drawImage方法显示Image对象。

显示图象

?显示图象的方法

drawImage(Image 对象, x, y,背景色, ImageObserver); –java.awt.Graphics类中定义了此方法

–第一个参数是保存图像数据的Image对象。

–第二、三个参数是图像的左上角坐标,它们决定了图像在容器中的显示位置。

–ImageObserver为一个接口,java的组件类实现了此接口,此处可理解为观察/显示Image对象容器,编程时一般可使用this,用于提示图象是否加载完成

GUI标准组件概述

?构建程序的图形用户界面的主要任务有两个 –创建各界面组件并排列成图形用户界面的外观

–定义这些组件对不同事件的影响从而完成图形用户界面功能 ?组成图形用户界面的成分有三类

–用户自定义类

–容器: 是能够容纳并排列其他组件的对象 –组件: 放置在容器中的对象

在Java中,容器和组件是由AWT包中的对象来代表, 这些对象间的层次关系如下图:

AWT类层次关系图 GUI标准组件概述

?基本组件被安放在容器中的某位置,用来完成一种具体的与用户交互的功能,使用基本组件一般包括如下的步骤:

–创建某种基本组件类的新对象,指定该对象的属性 比如:外观、大小等

–将该组件对象加入到某个容器的合适位置 –创建该组件对象的监听者,即实现以该组件为事件源的事件对应的监听者接口,也可以使现有的类实现该接口成为监听者。将该组件对象注册给此监听者,并在监听者内部实现监听者接口中定义的方法,对该组件可能引发的事件加以处理,定义新加入组件对象的交互性界面功能。 比如:接收用户输入的文本、在屏幕显示输出等 GUI标准组件

?Component:所有组件和容器的抽象父类

– 基本绘画显示功能:paint(), update(), repaint() – 外形控制:字体、颜色、位置、尺寸

– 图象处理:一般利用Canvas 和Container 来显示图像 – 事件处理机制(java 1.1):

?addXXXListener( ) ?removeXXXListener( )

?某组件的paint()和 update()为系统自动调用的有关图 形绘制的方法,不可人为编程调用;

但可编程重新 定义其操作内容

?使用repaint()方法可以触发update()方法 Component类的方法

?add(PopupMenu popup) 在组件上加入一弹出菜单

?addFocusListener(FocusListener l)将发生在本组件上的事件注册给监听者,以进行事件处理。 ?setSize(int width, int height) 设置组件尺寸 ?repaint(int x,int y,int width, int height) 重画组件 ?setFont(Font f) 设置组件字体

?setBackground(Color c) 设置组件背景色

?setVisible(boolean b) 设置组件是否可见,但不能将组件带到前端 GUI标准组件

?简单构件:人机交互的基本工具(控制) –Button,Checkbox, Label等

–TextComponent(TextArea,TextField) –Canvas

? 复杂构件:

–Container( 安放排列其他构件的容器) –Panel

JAVAGUI

图形用户界面设计?Java的GUI简介?自定义图形设计–图形、文字、图象?Java的标准组件–容器和组件–GUI的布局?事件处理图形用户界面(GUI)?字符界面–用字符串、命令行的方式与用户交互?图形用户界面:GraphicsUserInterface–用直观的图形来表示数据–用直观、
推荐度:
点击下载文档文档为doc格式
4afhu8igyo8njyy26yqz6tzp834daf018sq
领取福利

微信扫码领取福利

微信扫码分享