java简单绘图程序实验报告.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java简单绘图程序实验报告

华南师范大学本科学生实验报告 姓名_邱海森_ 学号 20082100079 院系 计算机学院 班级 08级网工7班 实验时间 2010_年 6 月 1 日 实验名称 java:简单绘图程序 指导老师及职称: 陈俊侠 华南师范大学教务处编印 Java实验 简单的绘图程序 一 实验目的 学会Netbeans的使用,能进行Netbeans的基本操作,能使用Netbeans构造一个图形界面框架 通过实验熟悉swing图形用户界面程序设计 熟悉java中的事件处理模型,每个事件动作代表的意义 进一步提高编程能力,学会独立思考,学会上网查找资料解决问题。 二 实验要求 以课本上随手画例程为蓝本,设计一个程序,该程序能够绘制基本的图形(包括圆形、矩形、直线等);要求有一个简单易操作的用户界面(包括菜单、按钮等组件)。 编写的程序要求能够实现保存和读取的功能 三 实验步骤 使用Netbeans设计程序的用户界面 新建一个Frame窗体,作为容器 向Frame窗体中添加基本组件,包括一个JMenuBar(菜单栏),向菜单栏中添加两个JMenu(菜单)(jMenu1、jMenu2),在jMenu1中添加四个jMenuItem(新建、打开、保存、退出),在jMenu2中添加四个jMenuItem(圆形、矩形、三角形、直线)。效果如下: 在Frame窗体上添加JTextArea文本区域,用来在上面绘制图形 添加四个单选按钮,用于选择图形,把四个按选按钮放进一个工具栏中,在同一个按钮组中,实现互斥。 效果如下: 至此,图形界面已经基本设计完毕 实现图形的绘制 (1)鼠标拖动绘制图形:添加鼠标按下事件,添加鼠标拖动事件,向其中填写正确的能执行的代码。 遇到的问题:可以实现鼠标拖动绘制图形,但是在鼠标拖动的过程中,却绘制出了多个图形。如图所示: 解决问题的方法:问题出在“鼠标拖动消息函数中”;我们在画图形时,应该先把“刚才”绘制的图形擦出掉。在绘制图形的过程中通过改变画笔的颜色实现多个图形的消除。 首先,在鼠标拖动事件中,把画笔的颜色设置成背景颜色(即白色),拖动鼠标时,绘制图形使用的是背景颜色,在原图形位置上重新画。这样我们是看不到的,可以说是擦除了。然后把画笔设置成前景色,绘制一次图形。如:画直线 Graphics g=jTextArea1.getGraphics(); //画笔 g.setColor(jTextArea1.getBackground()); // 画笔颜色设置成组件背景颜色 g.drawLine(pStart.x, pStart.y, pEnd.x, pEnd.y);// 在直线起点和终点之间画、//直线,用背景色在原直线位置上重复画直线就是擦除直线 g.setColor(jTextArea1.getForeground());//设置画笔颜色为前景色 g.drawLine(pStart.x, pStart.y, evt.getX(),evt.getY());//在直线的起点和光标的//当前拖动位置点之间画一条直线 pEnd=evt.getPoint();//把直线的终点更新为鼠标当前拖动位置点。以便下一//次画直线前擦除 程序基本上已经可以实现了简单的绘图功能。但是仍然有一些问题。 问题1:如果绘制的图形出现重叠,重叠的那部分会有模糊现象,会被“擦除”。如图: 原因分析:所绘制图形的有关信息没有保存起来,没有实现“交叉擦除现象”出现是重新绘制已画图形的功能。 解决方法:把已经绘制的图形的有关信息保存起来,当出现“交叉擦除现象”时重新绘制已经绘制好的图形。 我们引入几个类 抽象类: 类名:Figure 抽象成员函数:void DrawFigure (Graphics g) 2.直线类 类名 Line 父类:Figure 成员变量1:Point pS 成员变量2:Point pE 成员函数 1:成员变量的初始化构造函数 成员函数 2: 对父类中DrawFigure抽象函数的实现 3. 矩形类 类名:Rect父类:Figure 成员变量1:Point pS 成员变量2:Point pE 成员函数 1:成员变量的初始化构造函数 成员函数 2: 对父类中DrawFigure抽象函数的实现 4. 椭圆类 类名:Oval 父类:Figure 成员变量1:Point

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档