资源描述:
《java图形用户界面的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章图形用户界面的设计与实现7.1图形用户界面(GUI)概述界面设计的主要任务:(1)创建组成界面的各成分和元素,指定它们的属性和位置关系;(2)定义界面事件和各元素对不同事件的响应,实现界面与用户的交互功能;生成界面的类库:java.awt(abstractwindowtoolkit)抽象:操作定义在一个虚拟的窗口中进行,实现跨平台;界面的元素和成分容器控制组件用户自定义成分容器(1)容器(container):组织其他界面成分和元素的单元,用来存放别的组件。有三种类型的容器:Window、Panel和ScrollPane。ContainerPanelWindowScrollPan
2、eAppletDialogFrameFileDialog容器(2):Frame容器Window是能独立存在的容器,Frame是它的子类。Frame是有边框容器,通常用作最外层容器,不能被其他容器包含。Frame方法:Frame(Stringtitle);add():在Frame中加入其他组件。pack()方法会自动确定Frame的大小,确保Frame容器中的组件都会有与布局相适应的合理大小。setVisible(true):使Frame成为可见。Frame被创建后,它是不可见的。例子:见2007ch7srcSimpleFrame.java容器(3):Panel容器特点:1)没有边
3、框,不能被移动、缩放或关闭。2)不能作为最外层图形界面的容器,不能单独存在只能用做容器组件加入其他容器。3)通常用于层次化界面组件管理。P260:例7-20TestPanel.java例子:ch7srcMyFrame.java组件:图形用户界面的最小单元,用来完成与用户的交互;用户界面标准化的结果,例如:标签、文本框、按钮、菜单等。使用组件的步骤:1)创建组件类的对象,指定其属性;2)使用某种布局策略;3)将组件对象注册给对应的事件监听器,覆盖事件处理方法,实现与用户交互的功能;组件用户自定义成分:如绘制几何图形、使用标志图案等。通常只能起到装饰、美化的作用,不能响应用户的动作,不
4、具有交互功能。用户自定义成分7.2绘制图形利用Graphics类可以绘制文字及直线、矩形、多边形、圆和椭圆等各种图形。对于Application程序:创建Canvas对象,并将它加入界面容器中。Applet类和Canvas类都有一个paint()方法,系统会自动创建一个Graphics类的实例作为其参数,实现各种图形绘制;Graphics类的常用绘图方法《例7-1》DrawFigures.java(p185)drawLine(intx1,inty1,intx2,inty2):绘制直线drawRect(intx,inty,intwidth,intheight):绘制矩形fillRect(
5、intx,inty,intwidth,intheight):填充矩形设置字体—Font类显示文字:Graphics类的drawString()方法,在屏幕的指定位置显示字符串。Font类:表示一种字体,包含字体类型、字型和字号。如:Fontfnt=newFont(“TimesRoman”,Font.BOLD,12);Font类有三种字体:Font.PLAIN,Font.BOLD,Font.ITALIC。使用字体:Graphics类的setFont()方法如:g.setFont(fnt);btn.setFont(fnt);《例7-2》AvailableFonts.JavaGraphics
6、Enviroment类:TheGraphicsEnvironmentclassdescribesthecollectionofGraphicsDeviceobjectsandFontobjectsavailabletoaJava(tm)applicationonaparticularplatform.设置颜色—Color类Color类对象:控制文字或图形的颜色;构造函数:publicColor(intRed,intGreen,intBlue);各参数取值范围:0~255publicColor(floatRed,floatGreen,floatBlue);参数取值范围:0.0~1.0pu
7、blicColor(intRGB);参数的0~7位为红色分量,8~15位为绿色分量,16~23位为蓝色分量例:ColorblueColor=newColor(0,0,255);//问这是什么颜色?颜色设置:Graphics类的setColor()方法使用自定义的颜色:ColorblueColor=newColor(0,0,255);g.setColor(blueColor);使用Color类的颜色常量:g.setColor(Color.blac