JAVA画图工具
摘 要
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
是一门很优秀的编程语言,具有面向对象、与平台无关、安JAVA
全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。而且特别适合Internet的应用开发。JAVA确实具备“一次写成,处处运行”的特点,JAVA以成为网络时代最重要的编程语言之一。本
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
中介绍了用JAVA语言实现画笔系统的全部过程。
本次课程设计是配合JAVA程序设计课程,帮助我们深入学习掌握JAVA语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力、提高学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习,正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。
本次课程设计主要是用JAVA实现画笔系统,其系统主要完成以下功能:设计一个画图程序,能够实现画笔、画箭头、画直线、画圆形、画椭圆、画矩形、画多边形、
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
写文字修改该画笔的大小以及颜色。该画图程序还需具有橡皮擦功能以及清空整个画面的功能
关键词:画图工具,JAVA
1
目录
工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录
摘 要.............................................................. 1 目录................................................................ 2 1.绪论.............................................................. 3 2. 开发环境介绍..................................................... 4 3.需求分析.......................................................... 5 3.1总体目标 ...................................................... 5 3.2要实现的功能.................................................. 7 4(概要设计........................................................ 8 4.1设计准备...................................................... 8 4.2需要用到的类.................................................. 8 5.详细设计......................................................... 9 5(5类的设计..................................................... 9 5.2类的方法设计.................................................. 9 6.测试数据及运行结果................................................ 9 7.
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
............................................................ 15 8.参考文献........................................................ 15 9.源程序.......................................................... 15
2
1.绪论
Java不依赖平台的特点使它受到广泛的关注,Java已成为网络时代最重要的语言之一。
目前,Java语言不仅是一门被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。因为很多新的技术领域都涉及到Java语言,国内外许多大学已将Java语言列入本科教学
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
,而IT行业对Java人才的需求也在不断的增长,因此,掌握Java已经成为共识。
Java是一门说简单也不简单,说难也不难的课程。所以,我们在学习的过程中要根据自己的具体情况,合理安排编程训练时间,相信编程能力会在不知不觉中得到提高。
在此次的课程设计实践中,我学到了教科书上没有的东西。这次课程设计,我按照课程设计的要求,分块实现程序的功能。在实践中我遇到许多的问题,但我都克服,最终我成功的完成了这次课程设计。从中我充分理解了Java面对对象的特性,并体会到Java与C语言的不同之处
在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧和方法,为今后的其他计算机语言的学习奠定了一定的基础
3
2. 开发环境介绍
该项目所使用的软件开发环境如下:操作系统:Windows xp开发工具:eclipse3.2及其VE插件Eclipse简介Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具。
Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语 言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持 使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。
Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中, 其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是 Visual Age
for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的
4
许多 大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。
3.需求分析
3.1总体目标
设计一个画图程序,能够实现画图工具、画直线、画箭头、画椭圆、画多边形的功能,并且在绘图。过程中能够修改该画笔的大小以及颜色。该画图程序还需具有橡皮擦功能以及清空整个画面的功能
5
3.2要实现的功能
1、这个画图程序,最基本的功能是,作为一个画图工具利用它实现在屏幕上任意绘画、书写的功能;
2、利用这个画图程序,通过选择画直线、画箭头、画多边形、画矩形、椭圆、圆形等功能选项并且在屏幕上拖动鼠标操作能实现画出相应图形的功能; 3、这个画图程序,还需具备橡皮擦的功能,利用这个橡皮擦能够擦除屏幕上的图案,并且此橡皮擦也应该能够改变大小;
4、这个画图程序,还应该做到能够改变画笔颜色的功能;
5、这个画图程序,还应该具备能够清除整个屏幕已绘制图画的功能。 4.概要设计
4.1设计准备
1、此程序为实现这些功能模块,必须首先定义一个工具面板,将这些画笔、画 箭头、椭圆、圆、多边形直线、画矩形、画笔颜色、画笔大小、橡皮等功能组件放入这个工具面板中。
2、此程序为实现利用鼠标做画笔的功能,必会产生鼠标事件MouseEvent。因此,为实现鼠标画图的功能,必须用到鼠标触发事件,故在此程序中,必须实现“委托事件模型”,用到事件源、事件对象以及监听者对象。
3、此程序中,必须用到的包如下:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
4.2需用到的类
1 )class Mycanvas
此类用于定义一组数据成员,并且使用构造函数将他们分别初使化,以方便在下面的程序中使用他们。
2)class Myframe
此类用于实现这个程序的大部分功能,在这个类中除了定义一些基本变量以
6
及构造函数外,还定义了很多成员方法,这些成员方法将实现鼠标触发事件的一系列绘图功能。
3 )public class Text
这个类是主类,是程序得以运行的入口。在这个主类中定义了主方法,是该程序执行的入口。
5.详细设计
5.1类的设计
1) class Mycanvas
在这个类中定义了用于截断的一系列标志变量,有初始坐标、颜色、工具选择等,并且在这个类中还定义了构造函数void setx1(int x1){ },用于完成对这些变量的初始化工作。
2) class Myframe
这个类用来实现整个程序的大部分功能,并且在这个类中定义了大部分的成员函数和成员方法,在这个类中用到的主要成员方法如下: public void actionPerformed(ActionEvent e){} public void itemStateChanged(ItemEvent e){} public void mousePressed(MouseEvent e){} public void mouseRelesed(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){}
5.2类的方法介绍
? 定义的变量:
在这个类中,首先定义了画笔的大小、画笔的颜色、画笔的粗细、橡皮
的大小、工具的选择等一些变量,并且还用到了系统中自带的一些类初使化
7
了一些面板工具对象,用于完成对面板工具、画直线、画椭圆、画矩形、橡
皮擦、清除等一些工具按钮的定义。
? 初使化构造函数:
在这个初使化构造函数中,首先继承了父类Frame,然后初使化了各工
具按钮以及各个选择项,包括颜色选择、画笔大小选择、橡皮大小选择,并
且将这些组件添加到了工具面板中,最后还对各个组件注册了事件监听者对
象。
? paint()方法:
这个方法主要用于在Applet的界面中显示文字、图形和其它界面元素。本程序中,在这个方法中,定义了一些工具选项设置,给用户选择画笔、画直线、画圆、橡皮擦等一些功能。
? itemStateChanged()方法:
这个方法用来实现的功能很简单,主要是用来改变画笔大小、画笔颜色、橡皮大小的。在此方法中,设置了大小以及颜色的一些预选项,以供用户对大小以及颜色做出选择。
? mouseDragged()方法:
此方法是处理MouseEvent事件以实现MouseMotionListener接口的对象。
MouseMotionListener是事件监听者,mouseDragged(MouseEvent e)是成员
方法,代表鼠标拖动事件,在这个方法中,还用到了MouseEvent类常用成员
方法:public int getX()以及public int getY(),用来返回发生鼠标事件
的X及Y的坐标。这个方法中,主要用来控件画笔和橡皮的转换。 ? mousePressed()方法:
此方法是处理MouseEvent事件以实现MouseListener接口的对象。MouseListener是事件监听者,mouseDPressed(MouseEvent e)是成员方法,代表鼠标按下事件。这个方法主要用来控件用户画直线、画圆、画矩形这些功能之间的转换。
? mouseReleased()方法:
mouseEntered()方法:
mouseExited()方法:
mouseClicked()方法:
这些方法和mousePressed()方法属于同一类,他主要用来表示鼠标释
放事件,是对上述各个功能完成后对鼠标事件的又一次触发。
8
3、画直线、画圆、画矩形
9
7.总结
此软件基本达到理想效果,在编写这一软件的过程中我学到了很多java编程知识,并学会了如何快速的改正程序中的错误。
经过一周的课程设计,java编程方面的知识收获很大,但这只是java编程知识的冰山一角,还有很多东西没有学到。这次课程设计受益匪浅,不仅锻炼了我做事坚持不懈的心态,也慢慢地培养了我不懂就查书的好习惯,我的自学能力也有了一定的提高,我更明白了搞计算机这行,要学到真正的技术完全要靠自己,在课堂上只能学到最基本的东西,但这最基本的东西也一定要学好。
大三在即,在以后的工作学习中,我还会将更多的时间与精力投入到Java的学习中,不断为自己所学的知识补充新鲜血液。
8.参考文献
《java2实用教程》 耿祥于、张跃平编著
清华大学出版社
9.源程序
package SimplePaint123;
import java.awt.*;
import java.awt.event.*;
public class Mycanvas extends Canvas {
int x1,y1,x2,y2,x3,y3,r;int d=3;
int huabi=1;
double x[]=new double[8],y[]=new double[8];
int x4[]=new int[8],y4[]=new int[8];
Double X[]=new Double[8],Y[]=new Double[8];
Color c;
Mycanvas()
{
setBackground(Color.white);
}
10
void setx1(int x1){
this.x1=x1;
}
void sety1(int y1){
this.y1=y1;
}
void setx2(int x2){
this.x2=x2;
}
void sety2(int y2){
this.y2=y2;
}
void setx3(int x3){
this.x3=x3;
}
void sety3(int y3){
this.y3=y3;
}
void setcolor(Color c)
{
this.c=c;
}
void setarc(int d)
{
this.d=d;
}
void setr(int e)
{
r=e;
}
void sethuabi(int huabi)
{
this.huabi=huabi;
}
public void paint(Graphics g,int i)
{
g.setColor(c);
Graphics2D g_2d=(Graphics2D)g;
BasicStroke bs=new BasicStroke(huabi,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER);
g_2d.setStroke(bs);
if(i==1)
{
g.drawOval(x1, y1, x2,y2);
11
}
else if(i==2)
{
g.drawLine(x1, y1, x2, y2);
}
else if(i==3)
{
g.drawRect(x1, y1, x2,y2);
}
}
public void Paint(Graphics g)
{
Graphics2D g_2d=(Graphics2D)g;
BasicStroke bs=new
BasicStroke(huabi,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER);
g_2d.setStroke(bs);
for(int i=0;i
本文档为【JAVA画图工具】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。