您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > JAVA语言的图形用户界面的设计与实现
图形用户界面的设计一、GUI的定义:使用图形的方式借助菜单、按钮等标准界面元素和鼠标操作,帮助用户向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形方式显示给用户。二、Java的AWT库:abstractwindowstoolkit。三、图形用户界面的构成:是一组图形界面成份和界面元素的有机组合。四、容器:用来组织其它界面成份和元素的单元。五、控制组件:是图形用户界面的最小单位。六、用户自定义成份:是用户绘制的几何图形、图案组成的,它们只起装作用,不能响应事件。用户自定义成份一、Graphics类与用户自定义成份:Graphics类提供了很多绘制图形和文字的方法。这些方法主要是通过方法:paint(Graphicsg)来实现的。在这里要注意图形坐标与平面坐标的区别。二、绘制简单图形:1、画直线:方法是:voiddrawLine(intstartx,intstarty,intendx,intendy);2、画矩形:方法是:voiddrawRect(inttop,intleft,intwidth,intheight);voidfillRect(inttop,intleft,intwidth,intheight);voiddrawRoundRect(inttop,intleft,intwidth,intheight,intxDiam,intyDiam);voidfillRoundRect(inttop,intleft,intwidth,intheight,intxDiam,intyDiam);voiddraw3DRect(inttop,intleft,intwidth,intheight,booleand);voidfill3DRect(inttop,intleft,intwidth,intheight,booleand);3、画圆和椭圆:方法是:voiddrawOval(intx,inty,intwidth,intheight);voidfillOval(intx,inty,intwidth,intheight);4、画弧:方法是:voiddrawArc(intx,inty,intwidth,intheight,intstartAngle,intendAngle);voidfillArc(intx,inty,intwidth,intheight,intstartAngle,intendAngle);5、画多边形:方法是:voiddrawPolygon(intx[],inty[],intnumpoints);voidfillPolygon(intx[],inty[],intnumpoints);三、绘制文本:Graphics类提供了三个与绘制文本有关的方法:drawByte()、drawChars()、drawString()。这三个方法一般要和Font、FontMetrics类一起使用。用Font类可以设定字体、字体的样式及大小;用FontMetrics则可以记录和获取当前字体的规格等说明。Font类有关的方法有:Font(Stringname,intstyle,intsize):创建字体;setFont(Fontobj):设置字体;getFont():获得当前Graphics上所使用的字体;String[]getFontList():返回当前系统可用字体名称数组;getSize()、getStyle()、isPlain()、isBold()、isItalic();四、设置颜色:Java的颜色类:Color允许用户任意选择自己所需要的颜色。Color类中定义了一些常用的颜色实例,如下表所示:颜色名称RGB值白色Color.white255.255.255黑色Color.blank0.0.0亮淡灰Color.lightGray192.192.192灰色Color.gray128.128.128暗灰Color.darkGray64.64.64红色Color.red255.0.0绿色Color.green0.255.0蓝色Color.blue0.0.255黄色Color.yellow255.255.0紫(洋)红Color.Magenta255.0.255蓝色Color.blue0.0.255青色Color.cyan0.255.255青蓝Color.cyan0.255.255粉红Color.pink255.175.175橘色Color.orange255.200.0Color类中提供了以下方法:Color(intcolor1,intcolor2,intcolor3);创建颜色Color(intred,intgreen.intblue);Color(intrgbValue);Color(floatred,floatgreen,floatblue);setForeground();setBackground();setColor();getColor();getRed()、getGreen()、getBlue()、getRGB()。五、显示图像:Java中处理图像的类是:Image,它也是AWT中的类库之一。Java目前支持的图像格式有:GIF和JPEG两种。对图像操作一般可为三步:创建、加载和显示。1、图像的创建:可利用以下方法:ImagecreateImage(ImageProducerimgProd);ImagecreateImage(intwidth,intheight);2、图像的加载:可利用以下方法:ImagegetImage(URLurl);ImagegetImage(URLurl,StringimageName);3、图像的显示:利用的方法为:booleandrawImage(ImageimgObj,intx,inty,ImageObserverimgOb);显示图像是通过Graphics类的drawImage()实现的。其中:imgOb是一个ImageObserver接口对象,它用来监测图像加载的过程。六、动画制作:Java不仅提了对图形、图像的支持,而且还允许用户实现连续图像的播放,即动画技术。Java对动画的处理是:首先动画图像一次性从网络上下载完毕或在不影响动画效果的前提下分若干次下载,下载后的图像存放于数组或向量中,用一指针顺序提取,然后逐一显示到屏幕上。当然动画制作过程中会出现一些意想不到的效果。闪烁便是其中之一。克服它的技术有二:一是改写update()方法,内定的update()方法是先清除整个画面,然后再调用方法paint()显示图像,改写之后的update()方法为:publicvoidupdate(Graphicsg){paint(g);}二是利用双缓冲技术,双缓冲技术如下:1、在图形缓冲区内创建将要使用的图形对象:offscreenimage;2、在Applet的init()方法中,实例化offscreenimage对象;3、将要画到屏幕上的图像,转画到offscreenimage上;4、将offscreenimage上的图像,一次性的画到Applet的画面上;5、改写update()方法。Java的事件处理一、Java事件处理机制:事件委托处理。事件处理是GUI编程的核心,Java中的事件就是对象。Java.awt.event包中定义了丰富的事件类型层次。面向对象编程的一个基本原则就是让最适合完成任务的对象完成任务。指定一个对象处理组件事件的过程称为委托(delegation)。事件处理对象称为听众(Listener)。要让组件的某个活动事件的处理委托给某个听众,就要执行这个组件的addActionListener()方法,传递所要听众的引用。每个组件类都针对该组件产生的每种事件有个addxxxListener()方法。如下面的程序:(ButtonDelegateTest.java)importjava.awt.*;importjava.awt.event.*;publicclassButtonDelegateTestextendsjava.applet.Applet{publicvoidinit(){Buttonb=newButtob(“Ihavealistener!”);add(b);ActionListenerlistener=newTestListener();b.addActionListener(listener);}classTestListenerimplementsActionListener{publicvoidactionPerformed(ActionEvente){System.out.println(“Listenerhere:thebuttonwasclicked.”);}}}上面的程序就使用了事件委托模型:听众:listener是一个实现了接口ActionListener的类对象。接口ActionListener很简单,只有一个方法,它的实现为:publicinterfaceActionListenerextendsEventListener{publicabstractvoidactionPerformed(ActionEvente);}addActionListener()方法的声明要求听众参数实现这个接口:publicvoidaddActionListener(ActionListenerlistener);由于听众要实现这个接口,所以知道动作事件何时发生,系统可以安全地对听众调用actionPerformed()方法,因为听众必定有actionPerformed()方法。当然,事件也可以委托给自己,即自我包含类实现事件的听众,构造器把自己作为听众加进行。如:importjava.awt.*;importjava.awt.event.*;publicclassSelfButton2extendsButtonimplementsActionListener{publicSelfButton2(StringLabel){super(label);addActionListener(this);}publicvoidactionPerformed(ActionEvente){System.out.println(“Action!”);}}电子技术论坛二、Java事件的类型:Java所有的事件类和处理事件的监听者接口都定义在java.awt.event包中,其中事件的层次为:EventObjectAWTEventActionEventTextEventAdjustmentEventComponentEventItemEventContainerEventWindowEventFocusEventInputEventPaintEventMouseEventKeyEvent三、Java事件的监听接口:在java.awt.event包中,有11个事件监听接口,每个接口内部都包含了若干处理相关事件的抽象方法。每个事件类都有一个监听者接口与之相对应,而事件类的每个具体事件类型都有一个具体的抽象方法与之相对应,当事件发生时,这个事件将被封装成一个事件类的对象作为实现参数传递给与之对应的具体方法,由这个方法负责响应并处理发生的事件。如:与ActionEvent类相对应的接口为ActionListener,那么凡是处理ActionEvent事件的类都必须实现这个接口,重载actionPerformed()方法,并由这个方法处理事件。当然,InputEvent类由于它不对应具体事件,所以它没有接口;而MouseEvent类有两个接口与之相对应,一个是MouseListener,处理单击事件,另一个是MouseMotionListener,处理移动和拖动事件。GUI标准组件概述使用基本组件的步骤为:1、创建基本组件;2、放置到合适位置;3、创建组件对象的监听者。由
本文标题:JAVA语言的图形用户界面的设计与实现
链接地址:https://www.777doc.com/doc-3748579 .html