版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
13.1Graphics类
在前面的章节介绍了GUI图形用户界面。在Java中也经常进行图形的绘制与图像的运用。在Java中绘制基本图形与使用图像,主要用到两个类:Graphics类和Image类,而这两个类位于Java.awt包中。下面将对这两个类进行详细讲解。Graphics类提供基本的几何图形绘制方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形、画字符串等。这些所有的图形都会被画在相关联的窗口,而这些相关联的窗口可能是一个小应用程序的主窗口,也可能是一个小应用程序的子窗口,或者是一个独立应用程序的窗口。在本章下面的例子中,将在一个小应用程序的主窗口中示范图形。不过,请注意,这些技术也可以被用到别的窗口中。下一页返回13.1Graphics类
13.1.1画线段在窗口中画线段可以使用Graphics类中的drawLine()方法,方法的语法如下所示:drawLine()方法将用当前的颜色以(startX,startY)为起点、(endX,endY)为终点画一条直线。注意:这里坐标点的原点即(0,0)点位于窗口的左上角,以像素为单位。下面的例子演示了如何在小程序的窗口中画线。【程序13.1】上一页下一页返回13.1Graphics类
13.1.2画矩形可以使用Graphics类在窗体上画矩形,可绘制的矩形有两种:普通的矩形和圆角矩形。1.画普通矩形使用drawRect()可以用来绘制一个矩形的轮廓,语法如下所示:drawRect()方法的参数列表由四个参数构成,分别代表了所绘制的矩形的左上角点和窗体上沿的距离top、所绘制的矩形的左上角点和窗体左沿的距离left、所绘制矩形的宽度width,所绘制矩形的高度height。下面的程序实例画出一个红色的矩形轮廓。【程序13.2】上一页下一页返回13.1Graphics类
2.画一个填充了颜色的矩形使用fillRect()可以绘制一个矩形的轮廓,语法如下所示:fillRect()方法的参数列表由四个参数构成,与drawRect()的参数列表相同。下面的程序实例画出一个红色的矩形。【程序13.3】上一页返回下一页13.1Graphics类3.画圆角矩形使用drawroundRect()可以绘制一个圆角矩形的轮廓,语法如下所示:drawroundRect()方法的参数列表由六个参数构成,前四个参数与drawRect()的参数列表相同。arcW、arcH分别为所绘矩形圆角的宽和高。下面的程序实例画出一个红色的圆角矩形。【程序13.4】下一页返回上一页13.1Graphics类
4.画填充了颜色的圆角矩形使用fillRoundRect()可以绘制一个填充了颜色的圆角矩形的轮廓,语法如下所示:fillRoundRect()方法的参数列表由六个参数构成,与drawRoundRect的参数列表相同。下面的程序实例画出一个红色的圆角矩形。【程序13.5】上一页下一页返回13.1Graphics类
13.1.3绘制圆和椭圆与绘制矩形一样,也可以绘制圆形和椭圆形。可以使用如下的方法进行绘制:drawOval()绘制一个椭圆形的轮廓,使用fillOval()方法绘制填充了颜色的椭圆。这些方法的语法如下所示:可以看出drawOval()、fillOval()方法的参数相同,椭圆被绘制在一个矩形范围内,这个矩形的左上角是(top,left),而大小由参数width和height确定。绘制圆形时,只需指定矩形为一个正方形。下面来看一个程序例子:【程序13.6】上一页下一页返回13.1Graphics类
13.1.4绘制弧形Graphics类绘制弧形的函数有两个:drawArc()和fillArc(),前一个用于绘制无填充色的弧形,后一个用于绘制有填充色的弧形。方法的语法如下所示:上一页下一页返回13.1Graphics类
方法中有六个参数,其中x、y表示该圆弧外接矩形的左上角坐标;width、height表示该圆弧外接矩形的宽和高;anglestart、angleend表示该圆弧的起始角和终止角,单位为“度”。“0”(零)度角为x轴的正方向,正的角度按逆时针方向旋转,负的角度按顺时针方向旋转。下面来看一个程序例子:【程序13.7】上一页下一页返回13.1Graphics类
13.1.5绘制多边形graphics类绘制多边形的函数有两个:DrawPolygon()和fillPolygon(),前一个用于绘制无填充色的多边形,后一个用于绘制有填充色的多边形。方法的语法如下所示:这两个方法的参数列表中,n表示多边形的顶点个数加1。X[],y[]表示多边形中n个顶点的坐标值。下面来看一个程序例子:【程序13.8】上一页返回13.2Image类上面所介绍的Graphics类只能画一些比较简单的基本图形,如果要画出Gif格式或者JPEG格式的复杂图像,需要用到Image类。Images是Image类的对象,而Image类是Java.awt包的一部分。Images由Java.awt.image中的类对其进行操作。Java.awt.image定义了一大批类和接口,一一对它们进行研究是不可能的,因此就其中最简单的部分进行讲解。下一页返回13.2Image类13.2.1创建图像对象Java.awt的Component类有一个叫作createImage()的方法用来生成图像对象(记住:所有的AWT组件都是Component类的子类,因此它们都支持该方法)。CreateImage()方法有如下两种形式:第一种形式返回由imgProd产生的图像。imgProd是一个实现ImageProducer接口的类的对象(稍后将讨论producers)。第二种形式返回具有指定宽度和高度的空图像,如下例所示。上一页下一页返回13.2Image类上例生成了一个画布Canvas实例,然后调用createImage()方法来实际生成一个Image对象。这里,图像是空白的,以后将会看到如何对它写数据。13.2.2显示图像可以用drawImage()方法来显示一个图像,drawImage()方法是Graphics类中的一个方法,下面是使用drawImage()方法的一个形式。上一页下一页返回13.2Image类drawImage()实现的功能是显示图片,它显示由imgObj参数所传递的图片对象,显示图片的位置由第二个参数left、第三个参数top所决定,这两个参数决定了图片左上角的位置。imgOb是一个实现了ImageObserver接口的类的引用。这个接口由所有的AWT组件所实现。一个imageobserver是一个对象,它能够在图像被加载时对其进行监控。一般使用createImage()方法和drawImage()方法加载并且显示图像,下面这个例子就是加载并显示一个名为sunset.jpg的图像,图像的名称可根据所要显示的图像进行改变(只要保证这个图片文件所在的位置与小程序的HTML文件在同一目录下)。【程序13.9】上一页下一页返回13.2Image类当这个小应用程序运行时,它在init()方法中启动加载img。在屏幕上能看到正从网络上下载的图像,因为每当更多的图像数据到达时,Applet对ImageObserver接口的实现就会调用paint()方法。用这种方法,只要图像被完整地加载,就能简单地在屏幕上立即显现。可以一边用其他信息在屏幕上画
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 翻越心峰·遇见成长-初中八年级心理健康教育主题班会教学设计
- 高二收心启航班会教案:AI赋能规范启程赢在2026新赛道
- 中学九年级道德与法治爱国主题班会示范教学设计《强国有我:新时代中国力量深度透视》
- 2026年政治教师招聘面试重点题集
- 2026年电工操作工高级考试重点解析
- 2026年新能源汽车电子控制系统故障排除练习题
- 2026年秋冬季养生保健知识讲座
- 2026年竹编认证考试重点题库精
- 2026年高中语文古诗文阅读理解试题
- 2026年行政管理笔试模拟题集
- 2026年医保办新员工岗前培训记录
- 2026年全国交管12123驾驶证学法减分(学法免分)考试题库及答案
- 2026四川达州市面向高校毕业生招聘园区产业发展服务专员37人考试模拟试题及答案解析
- 摩根士丹利 -半导体:中国AI加速器-谁有望胜出 China's AI Accelerators – Who's Poised to Win
- 江苏省水利工程单元工程施工质量验收常用标准(2025.6.20)
- 当代知名作家余华介绍动态
- UNIT9LEARNINGWRITINGWORKSHOP课件高一英语北师大版必修3
- CBT3790-97船舶管子加工技术条件
- 《兽医临床诊疗》课件-皮肤检查
- JB-T 14314-2022 活塞式调流阀
- 普通话词语表
评论
0/150
提交评论