画图系统实验报告Word文件下载.docx

上传人:b****1 文档编号:5261679 上传时间:2023-05-04 格式:DOCX 页数:45 大小:428.17KB
下载 相关 举报
画图系统实验报告Word文件下载.docx_第1页
第1页 / 共45页
画图系统实验报告Word文件下载.docx_第2页
第2页 / 共45页
画图系统实验报告Word文件下载.docx_第3页
第3页 / 共45页
画图系统实验报告Word文件下载.docx_第4页
第4页 / 共45页
画图系统实验报告Word文件下载.docx_第5页
第5页 / 共45页
画图系统实验报告Word文件下载.docx_第6页
第6页 / 共45页
画图系统实验报告Word文件下载.docx_第7页
第7页 / 共45页
画图系统实验报告Word文件下载.docx_第8页
第8页 / 共45页
画图系统实验报告Word文件下载.docx_第9页
第9页 / 共45页
画图系统实验报告Word文件下载.docx_第10页
第10页 / 共45页
画图系统实验报告Word文件下载.docx_第11页
第11页 / 共45页
画图系统实验报告Word文件下载.docx_第12页
第12页 / 共45页
画图系统实验报告Word文件下载.docx_第13页
第13页 / 共45页
画图系统实验报告Word文件下载.docx_第14页
第14页 / 共45页
画图系统实验报告Word文件下载.docx_第15页
第15页 / 共45页
画图系统实验报告Word文件下载.docx_第16页
第16页 / 共45页
画图系统实验报告Word文件下载.docx_第17页
第17页 / 共45页
画图系统实验报告Word文件下载.docx_第18页
第18页 / 共45页
画图系统实验报告Word文件下载.docx_第19页
第19页 / 共45页
画图系统实验报告Word文件下载.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

画图系统实验报告Word文件下载.docx

《画图系统实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《画图系统实验报告Word文件下载.docx(45页珍藏版)》请在冰点文库上搜索。

画图系统实验报告Word文件下载.docx

设计一个画图系统,能够实现在屏幕上任意绘画、书写的功能;

能实现画直线、画椭圆、画圆、画矩形、画空心图形,画实心图形、画3D矩形,画3D立方体等功能;

在绘图的过程中能够修改该画笔的大小以及颜色;

能够改变背景颜色;

该画图程序还需具有橡皮擦功能。

2.2系统的开发运行环境

本系统开发环境:

MyEclipse

本系统运行环境:

windowsxp或以上版本

3总体设计

3.1系统结构设计

画图系统设计的画图板主要包括菜单栏,工具栏,画图区和菜单栏四个部分。

菜单栏主要包括文件、编辑、设置、帮助等常见菜单,可完成一些基本操作;

工具栏可根实际需要选择不同的工具完成画图操作;

画图区能够对图片及文字进行编辑处理;

菜单栏用来显示鼠标当前的状态。

3.2软件功能模块及主要类设计

3.2.1功能描述

本软件可以绘制日常生活和学习中用到的基本图形及进行文本输入。

软件主要有菜单栏、工具栏、画图区、状态栏组成,菜单栏主要包括文件、编辑、设置、帮助等常见菜单。

其中文件菜单有新建、打开、保存、另存为、退出功能;

编辑菜单有撤销、恢复功能;

设置菜单含有对画笔颜色、画笔大小等的设置功能;

帮助菜单提供画图板的帮助信息及作者信息。

工具栏可以选择用户需要的图形样式、设置参数、插入文本等操作。

画图区就是简单绘图区域,用户在画图区可自由绘制图形。

状态栏可以显示鼠标的动态(画图、点击、松开、移出)和位置。

右击工具栏可设置工具是否可拖动。

此外,还可以根据不同的需要设置背景色,画笔大小、画笔颜色。

能够在任意点添加文字并设置文字样式和字体颜色。

3.2.2功能结构图

3.2.3主要类设计

Paint类

Paint类为主类,定义main方法;

MyPaint类

MyPaint类继承JFrame类,用于实现画图板的总体构架。

包括菜单栏设计、工具栏设计、画图区创建、鼠标事

件等。

画图板的一些基本功能都靠MyPaint类来实现。

DrawPanel类

DrawPanel来是MyPaint类的内部类,是用来画图的。

drawings类

drawings类是画图类,是基本图形的单元。

其各个子类用以实现画各种图形,其包括以下几个子类:

Line类绘制直线;

Circle类绘制圆;

fillCircle类绘制实心圆;

Rect类绘制矩形;

fillRect绘制实心矩形;

RoundRect绘制圆角矩形;

Oval类绘制椭圆;

Rect3D类绘制3D矩形;

Cube类绘制立方体;

Pencil类自由笔;

Rubber类橡皮类;

Word类文本类等。

4系统详细设计与实现

4.1主界面

4.1.1主界面功能设计

画图板的主界面分为菜单栏、工具栏、画图区、状态栏四部分。

4.1.2主界面设计

画图板的主界面如下图所示,在主类中加载了系统风格,使其界面更为美观;

为工具栏和工具栏按钮添加了颜色,使画图板颜色不单调;

为画图板的工具栏设置各种图标,使画图板更有个性。

在实现画图功能的基础上使其外观更为美观。

4.1.3主界面主要代码

1.加载系统风格:

try{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

}//加载系统界面风格

catch(Exceptione){

}

2.设置窗体图标:

Toolkitkit=Toolkit.getDefaultToolkit();

//获取Toolkit实例

Imageimage=kit.getImage("

Icons/Title.jpg"

);

//获取图片

setIconImage(image);

//设置窗体图标

4.2菜单栏

4.2.1菜单栏功能设计

菜单栏包括文件、编辑、设置、帮助四部分。

其中,文件菜单实现了新建、打开、保存、另存为、退出功能;

编辑菜单实现了撤销和恢复功能;

设置菜单实现了画笔颜色、画笔大小和立方体宽度的设置;

帮助菜单实现了关于画图板的帮助信息及作者的信息。

4.2.2菜单栏界面设计

1.文件菜单:

2.编辑菜单:

3.设置菜单

4.帮助菜单

5.画笔大小

6.画笔颜色

4.2.3菜单栏主要代码

菜单栏代码较多,详细代码见附录。

4.3工具栏

4.3.1工具栏功能设计

工具栏是一系列快捷操作的按钮,分别是:

新建、打开、保存、自由画笔、直线、空心矩形、实心矩形、空心椭圆、实心椭圆、圆、实心圆、空心圆角矩形、实心圆角矩形、空心3D矩形、实心3D矩形、3D长方体、橡皮、设置背景色、画笔颜色、画笔粗细、添加文字,用来实现相应的功能。

另外还为工具栏设置了按钮图片和鼠标右击事件,右击鼠标可以设置工具栏是否可拖动。

4.3.2工具栏界面设计

4.3.3工具栏主要代码

1.工具栏按钮图标

items=newImageIcon[names.length];

//创建各种基本图形的按钮

choices=newJButton[names.length];

buttonPanel=newJToolBar(JToolBar.VERTICAL);

buttonPanel=newJToolBar(JToolBar.HORIZONTAL);

ButtonHandlerhandler=newButtonHandler();

ButtonHandler1handler1=newButtonHandler1();

buttonPanel.setBackground(newColor(0,260,280));

//工具栏背景色设置

//导入图形图标,图标存放在项目文件夹下的Icons目录内

for(inti=0;

i<

choices.length;

i++){

items[i]=newImageIcon("

Icons/"

+names[i]+"

.jpg"

choices[i]=newJButton(items[i]);

choices[i].setToolTipText(tipText[i]);

choices[i].setBackground(newColor(204,204,204));

//按钮背景色设置

buttonPanel.add(choices[i]);

}

2.鼠标右击事件:

//工具栏右击菜单,设置工具栏是否可拖动

voidToolMenu(){

finalJPopupMenuToolMenu;

ToolMenu=newJPopupMenu();

finalJCheckBoxmove=newJCheckBox("

工具栏是否可拖动"

move.setBackground(newColor(0,255,0));

ToolMenu.add(move);

buttonPanel.addMouseListener(newMouseAdapter(){

publicvoidmousePressed(MouseEvente){

if(e.getModifiers()==InputEvent.BUTTON3_MASK)

ToolMenu.show(buttonPanel,e.getX(),e.getY());

});

move.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

if(move.isSelected()){

buttonPanel.setFloatable(true);

}else{

buttonPanel.setFloatable(false);

}

});

}

4.4画图区

4.4.1画图区功能设计

画图区可以绘制各种图形,可以进行擦除操作,还可以根据实际需要添加文本。

4.4.2画图区界面设计

4.4.3画图区主要代码

详细代码见附录。

4.5状态栏

4.5.1状态栏功能设计

状态栏是显示鼠标的状态的信息栏,随时反馈鼠标信息。

4.5.2状态栏设计

4.5.3状态栏主要代码

部分代码如下,详细代码见附录:

publicvoidmousePressed(MouseEvente){

statusBar.setText("

鼠标点击:

["

+e.getX()+"

"

+e.getY()+"

]"

//设置状态提示

itemList[index].x1=itemList[index].x2=e.getX();

itemList[index].y1=itemList[index].y2=e.getY();

//如果当前选择的图形是随笔画或者橡皮擦,则进行下面的操作

if(currentChoice==3||currentChoice==16){

index++;

createNewItem();

5设计小结

在本次的课程设计中,应用了java中开发图形应用程序的常用控件、事件处理机制、常用功能实现等。

设计的此软件基本达到理想的效果,在在编写这一软件的过程中我学到了很多java编程知识,并学会了如何快速的改正程序中的错误。

从编写记事本到画图系统的设计,有很多相同的地方,但不同的地方更多。

在编写菜单栏时可以借鉴记事本中的编程思想。

但是画图系统增添了一行工具栏,实现了更多的功能,还用到了文件的输入输出流等。

本次设计我对面向对象的程序设计有了一个总体的把握,从软件工程的角度看,有了一个完整的脉络,如需求、设计实现、测试。

编程中遇到了很多问题,通过查阅书籍、上网搜资料以及同学之间的交流讨论,最终完成了画图软件的设计。

经过这两周的课程设计,使我收获了很多java编程方面的知识,而这些知识是实践中才能学得到的。

这让我想起一句话:

纸上得来终觉浅,绝知此事要躬行。

没错,学习不仅仅是大脑的思考,更要有实践的配合。

现在觉得自己掌握的Java知识比课堂上学到的多很多,同时对其他编程语言的学习也有了一定的帮助。

其实,这只是java编程知识的冰山一角,我还有很多东西没有学到,仍需继续努力。

但是由于所学知识有限,能力水平有限,难免有些功能还不能很好的实现,还望老师批评指正。

在今后的学习中,我还会将更多的时间与精力投入到Java的学习中,不断为自己所学的知识补充新鲜血液。

参考文献

(1)耿祥义,张跃平.《Java实用教程(第3版)》北京:

电子工业出版社,2012.1

(2)陈明.《Java语言程序设计课程实践》,北京:

清华大学出版社,2009.1

(3)陈嵩等.新手学Java[M].北京:

北京希望电子出版社,2010

6附录

源程序清单

Paint.java:

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjavax.swing.*;

importjavax.swing.event.UndoableEditEvent;

importjavax.swing.undo.*;

publicclassPaint{

publicstaticvoidmain(String[]args){

try{

}//加载系统界面风格

newMyPaint();

classMyPaintextendsJFrame{

JMenuBarjmenuBar;

privateObjectInputStreaminput;

privateObjectOutputStreamoutput;

//定义输入输出流,用来调用和保存图像文件

privateJButtonchoices[];

//按钮数组

privateStringnames[]={

"

New"

//新建

Open"

//打开

Save"

//保存

Pencil"

//自由画笔

Line"

//直线

Rect"

//空心矩形

fRect"

//实心矩形

Oval"

//空心椭圆

fOval"

//实心椭圆

Circle"

//圆形

fCircle"

//实心圆形

RoundRect"

//圆角矩形

frRect"

//实心圆角矩形

3DRect"

//3D矩形

f3DRect"

//实心3D矩形

Cube"

//立方体

Rubber"

//橡皮擦

bgColor"

//背景色

Color"

//画笔颜色

Stroke"

//画笔大小

Word"

//文本输入

};

GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();

StringstyleNames[]=ge.getAvailableFontFamilyNames();

//加载系统字体

privateIconitems[];

privateStringtipText[]={"

新建"

打开"

保存"

自由画笔"

直线"

空心矩形"

实心矩形"

空心椭圆"

实心椭圆"

圆"

实心圆"

空心圆角矩形"

实心圆角矩形"

3D矩形"

3D长方体"

橡皮"

设置背景色"

画笔颜色"

画笔粗细"

添加文字"

};

//按钮提示说明

JToolBarbuttonPanel;

//定义按钮面板

privateJLabelstatusBar;

//显示鼠标状态的提示条

privateDrawPaneldrawingArea;

//定义画图区域

privateintwidth=850,height=550;

//画图区域初始大小

drawings[]itemList=newdrawings[5000];

//用来存放基本图形的数组

privateintcurrentChoice=3;

//设置初始画笔为自由笔画

intindex=0;

//已绘制图形数目

privateColorcolor=Color.black;

//画笔颜色

intR,G,B;

//颜色值

intf1,f2;

//存放当前字体风格

Stringstyle1;

//存放当前字体

privatefloatstroke=1.0f;

//设置画笔粗细

staticintthickness=10;

//立方体宽度

JCheckBoxbold,italic;

//定义字体风格选择框

MyUndoManagermyUndo;

JComboBoxstyles;

//字体选择框

Toolkitkit=Toolkit.getDefaultToolkit();

Imageimage=kit.getImage("

publicMyPaint(){

setTitle("

绘图系统第十组版"

setLocation(300,100);

//画图板窗口起始位置

setSize(750,550);

//setBounds(200,100,850,750);

//画图板大小

setVisible(true);

setIconImage(image);

setCursor(newCursor(Cursor.HAND_CURSOR));

//设置画图板鼠标样式

drawingArea=newDrawPanel();

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

if(JOptionPane.showConfirmDialog(newFrame(),"

你确定退出吗?

"

退出提示"

JOptionPane.WARNING_MESSAGE)==JOptionPane.OK_OPTION)

System.exit(0);

}

});

//关闭确认提示

getJMenuBar();

//获取菜单栏

myUndo=newMyUndoManager();

items=newImageIcon[names.length];

ButtonHandler1handler1=newButtonHandler1();

buttonPanel.setBackground(newColor(0,260,280));

//导入图形图标,图标存放在项目文件夹下的Icons目录内

for(inti=0;

items[i]=newImageIcon("

choices[i]=newJButton(items[i]);

choices[i].setToolTipText(tipText[i]);

choices[i].setBackground(newColor(204,204,204));

buttonPanel.add(choices[i]);

ToolMenu();

//工具栏右击事件调用

//将动作侦听器加入按钮里面

for(inti=3;

choices.length-4;

choices[i].addActionListener(handler);

choices[0].addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

newFile();

choices[1].addActionListener(newActionListener(){

loadFile();

choices[2].addActionListener(newActionListener(){

saveFile();

}

choices[choices.length-4].addActionListener(handler1);

choices[choices.length-3].addActionListener(handler1);

choices[choices.length-2].addActionListener(handler1);

choices[choices.length-1].addActionListener(handler1);

//字体风格选择

styles=newJComboBox(styleNames);

styles.setMaximumRowCount(10);

styles.a

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2