




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第15章
图形2动因假设你希望画出如图所示的像条形图、时钟或停止符这样的图形,如何才能做到呢?
3学习目标描述GUI组件中的Java坐标系(第15.2节)。使用Graphics类中的方法画图
(第15.3节)。覆盖paintComponent方法在GUI组件上绘图
(第15.3节)。使用面板作画布来绘图
(第15.3节)。绘制字符串、直线、矩形、椭圆、弧形和多边形等
(第15.4、15.6-15.7节)。使用FontMetrics获取字体属性并且了解如何将消息居中(第15.8节)。在GUI组件中显示一个图像
(第15.11节)。开发可重用的GUI组件FigurePanel、MessagePanel、StillClock和ImageViewer(第15.5、15.9、15.10、15.12节)。4Java坐标系5每个GUI组件都有自己的坐标系6Graphics类Graphics类中提供了绘制字符串、直线、矩形、椭圆、弧形、多边形和折线段的方法。7paintComponent举例为了在组件上绘图,需要定义一个扩展JPanel的类,并且覆盖它的paintComponent方法来表示绘制什么。使用paintComponent重写这章的第一个程序。TestPaintComponentRun8绘制几何图形绘制字符串绘制直线绘制矩形绘制椭圆绘制弧形绘制多边形9绘制字符串drawLine(intx1,inty1,intx2,inty2);drawString(Strings,intx,inty);10绘制矩形drawRect(intx,inty,intw,inth);fillRect(intx,inty,intw,inth);11绘制圆角矩形drawRoundRect(intx,inty,intw,inth,intaw,intah);fillRoundRect(intx,inty,intw,inth,intaw,intah);12绘制椭圆drawOval(intx,inty,intw,inth);fillOval(intx,inty,intw,inth);13实例学习:FigurePanel类这个例子开发可以显示各种图形的非常有用的类。这个类允许用户设置图的类型、指定是否填充该图形以及是否在面板上显示这个图形。FigurePanel14测试FigurePanel这个例子开发可以显示各种图形的非常有用的类。这个类允许用户设置图的类型、指定是否填充该图形以及是否在面板上显示这个图形。TestFigurePanelRun15绘制弧形drawArc(intx,inty,intw,inth,intangle1,intangle2);fillArc(intx,inty,intw,inth,intangle1,intangle2);角的单位是度16绘制弧形举例DrawArcsRun17绘制多边形和折线段int[]x={40,70,60,45,20};int[]y={20,40,80,45,60};g.drawPolygon(x,y,x.length);g.drawPolyline(x,y,x.length);18使用Polygon类绘制多边形Polygonpolygon=newPolygon();polygon.addPoint(40,59);polygon.addPoint(40,100);polygon.addPoint(10,100);g.drawPolygon(polygon);19绘制多边形举例DrawPolygonRun20使用FontMetrics类居中显示字符串可以在一个面板的任何位置显示一个字符串。可以居中显示它吗?要想做到这一点,需要使用FontMetrics类,对特定字体的字符串测量出确切的宽度和高度。FontMetrics可以测量给定字体的以下属性:publicintgetAscent()publicintgetDescent()publicintgetLeading()getAscent()getLeading()getDescent()getHeight()publicintgetHeight()publicintstringWidth(Stringstr)21FontMetrics类FontMetrics是一个抽象类。要得到某种特定字体的FontMetrics对象,可以使用定义在Graphics类中的以下getFontMetrics方法:·
publicFontMetricsgetFontMetrics(Fontf)
返回指定字体的字体尺寸。·
publicFontMetricsgetFontMetrics()
返回当前字体的字体尺寸。22TestCenterMessageRun23实例学习:MessagePanel类MessagePanelRun本实例开发一个有用的类,它可以在面板中显示一条消息。这个类允许用户设置消息的位置、居中放置消息的位置、居中放置消息、使用指定间距移动消息。TestMessagePanel24实例学习:StillClock类DisplayClockRunStillClock25绘制时钟xEnd=xCenter+handLength
sin(
)yEnd=yCenter-handLength
cos(
)由于一分钟有60秒,所以秒钟的角度是:second
(2
/60)26绘制时钟(续)xEnd=xCenter+handLength
sin(
)yEnd=yCenter-handLength
cos(
)分钟的位置是由分钟数和秒数决定。和秒一起计算的精确分钟值是minute+second/60。例如:如果时间是3分30秒,那么总的分钟数是3.5。由于一小时有60分钟,所以分钟的角度是(minute+second/60)
(2
/60)27绘制时钟(续)xEnd=xCenter+handLength
sin(
)yEnd=yCenter-handLength
cos(
)由于一圈被分为12小时,所以时钟的角度是(hour+minute/60+second/(60
60)))
(2
/12)28显示图像图标你已经学习了如何创建图像图标以及如何在标签和按钮上显示它们。例如:下面的语句创建一个图像图标并在标签上显示它:ImageIconicon=newImageIcon("image/us.gif");JLabeljlblImage=newJLabel(imageIcon);图像图标显示一个尺寸固定的图像。为了显示大小灵活的图像,需要使用java.awt.Image类。可以使用getImage()方法从一个图像图标中创建一个图像,如下所示:Imageimage=imageIcon.getImage();29显示图像使用标签作为显示图像的区域比较简单、方便,但是你对如何显示图像没有多少控制权。更加灵活的显示图像的方式就是在面板上使用Graphics类的drawImage方法。drawImage方法的四个版本如图所示:30显示图像举例这个例子给出显示来自image/us.gif的图像的代码。文件image/us.gif在类目录下。程序中从文件创建Image,drawImage方法显示填充整个面板的图像,如图所示:RunDisplayImage31实例学习:ImageViewer类显示图像是Java程序设计的一个常用任
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年涉及财产分割的离婚合同范本
- 2025年技术合作项目保密合同范文
- 2025年铁路运输出口报关合同范文
- 2025年互惠互利协商合同
- 2025年电力建设安全监管分包合同范文
- 2025年感情危机的离婚调解合同
- 建筑装修工程施工合同
- 产品订货合同模板6篇
- 2025年冷却塔清洗保养合同
- 2025年物流配送合作协议书合同
- 《工程制图》题库(含答案)
- 新高处安装维护拆除作业课件
- 急诊部重点专科申报课件
- 系统思维解决问题(-95张)课件
- 监控室值班记录表免费
- CJ-T236-2022 城市轨道交通站台屏蔽门-高清最新版
- DB22∕T 2948-2018 天然、半天然草地牛羊混合放牧技术规程
- 炼油与化工企业电气管理制度
- 土方开挖作业规范
- (高清版)外墙外保温工程技术标准JGJ144-2019
- 机电控制与可编程序控制器课程设计报告
评论
0/150
提交评论