JAVA课程设计.docx

上传人:b****5 文档编号:8020325 上传时间:2023-01-28 格式:DOCX 页数:36 大小:114.67KB
下载 相关 举报
JAVA课程设计.docx_第1页
第1页 / 共36页
JAVA课程设计.docx_第2页
第2页 / 共36页
JAVA课程设计.docx_第3页
第3页 / 共36页
JAVA课程设计.docx_第4页
第4页 / 共36页
JAVA课程设计.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

JAVA课程设计.docx

《JAVA课程设计.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计.docx(36页珍藏版)》请在冰豆网上搜索。

JAVA课程设计.docx

JAVA课程设计

大连科技学院

Java课程设计报告

 

题目小小画图板的设计与实现

 

学生姓名吴迪专业班级软件工程10-1

指导教师李孝贵职称 讲师 

所在单位信息科学系软件工程教研室

教学部主任王立娟

 

完成日期2012年12月21日

课程设计报告单

学号

1001030126

姓名

吴迪

专业班级

软件工程10-1

考核项目

评分

备注

1

平时工作态度及遵守纪律情况 

 

 

(10分)

2

掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平

 

 

(10分)

3

独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度

 

 

(20分)

4

完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)

 

 

(60分)

总评成绩

 

综合评定:

 

 

 

(优、良、中、及格、不及格)

指导教师签字:

 

 

 

2012年12月24日

 

《Java课程设计》任务书

任务及要求:

一、设计(研究)内容和要求

1.内容:

编写一个小小画图板,使用Java,实现画图功能。

本程序完成的是一个类似于Windows画图板的绘图程序,绘制一些基本的画图组件:

直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等,从而通过各种组件实施画图。

要求:

1、软件要求

实现各种画图界面,可以实现新建图形文件,打开图形文件,保存图形文件等功能,其主要功能是可以画图。

2、文档要求

(1)设计程序结构、画出模块图。

(2)按照指导教师给出的项目文档的模板进行书写。

(3)参考文献数量不得低于4个。

二、工作量

2周(10个工作日)时间

三、计划安排

第1个工作日-第2个工作日:

查找相关资料、书籍,阅读示例文档;

设计程序结构、模块图、完成类的设计。

第3个工作日-第7个工作日:

完成程序的编码,并且自己调试、测试。

穿插进行项目文档的撰写。

第8个工作日-第9个工作日:

撰写和整理项目文档。

第10个工作日:

由教师检查软件测试效果、项目文档,给出学生本课程成绩。

 

指导教师签字:

                        2012年12月10日

 

目录

题目:

1

1.需求分析1

2.概要设计1

3.详细设计1

4.编码5

5.调试分析6

6.测试结果及运行效果6

7.系统开发所用到的技术6

参考文献7

附录全部代码8

 

题目:

小小画图板的设计与实现

1.需求分析

用过微软Windows操作系统的人一定都对Windows自带的画图板非常的熟悉。

同图像处理软件界的“大哥大”Photoshop比起来,它虽然不及Photoshop的功能强大、内容丰富,但是作为Windows一直以来都内带的附件程序,它具有小巧玲珑、简单实用等其它绘图软件所不具备的优点。

同时它的风格也被许多其它绘图软件所效仿。

通过本绘图程序的编写,我们可以看到如何运用自己已经掌握的知识,自己动手来完成一个Java绘图程序,通过整个流程的熟悉以及对程序组织结构和框架的理解,也可以极大的促进我们对Java程序和面向对象程序设计的认识和掌握。

通过本次课程的学习,我们可以更加系统地学习和了解如何从整体上设计和实现一个程序,这对我们今后学习、开发和设计更大更复杂的程序有着很大的帮助。

2.概要设计

本程序完成的是一个类似于Windows画图板的绘图程序。

由于不是开发和设计专业的绘图和图像制作软件,所以,完成的程序的简单功能包括以下几项:

(1)新建一个空白图形文件:

用于绘制新的图形。

(2)打开或保存一个图形文件,便于对图形文件的管理。

(3)绘制一些基本的画图组件:

直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等。

(4)可以用鼠标在绘图面板上单击拖动进行随笔画。

(5)橡皮擦:

可以将已绘制好的图形擦掉。

(6)添加文字:

可以在绘图区域内添加文字。

(7)选择文字的字体:

通过一个下拉式的选择条,可以选中所需要的字体。

本程序中包括:

宋体、隶书、华文彩云、仿宋、华文行楷、方正舒体、TimesNewRoman、Serif、Monospaced、SonsSerif、Garamond。

当然,在下面的的程序分析中可以看到,由于我们灵活设置了字体数组,是的可以随意添加系统支持的任何字体。

大大方便和简化了程序设计。

(8)选择文字的字体风格:

通过两个复选框按钮,可以选择需要的字体风格,包括:

粗体、斜体,使用者有三种选择方式,包括:

①同时选中两者、②只选择其中一种、③两者都不选中。

(9)设置画笔的颜色:

可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩、生动活泼。

(10)设置画笔的粗细:

该选项在作用于基本图形组件和文字时,它的效果是不一样的。

①当作用于绘制图形组件时,它的作用是改变画笔绘制线条的粗细;②当作用于文字时,它的作用是改变文字的大小。

3.详细设计

3.1程序基本组成框架和结构

一组基本图形按钮,包括:

Pencil(随笔画)、Line(直线)、Rect(矩形)、FRect(实心矩形)、Oval(椭圆)、FOval(实心椭圆)、Circle(圆)、FCircle(实心圆)、RoundRect(圆角矩形)、FrRect(实心圆角矩形)、Rubber(橡皮擦)、Word(文字)。

这些基本图形都继承于同一个父类:

drawings。

drawings具有变量(属性):

intx1,x2,y1,y2;//用来存放相应图形元素的坐标

intR,G,B;//用来存放图形色彩颜色信息

floatstroke;//用来存放画笔粗细

inttype;//用来保存图形类型

Strings1;//用来保存输入文字字符串

Strings2;//用来保存字体类型字符串

同时,drawing还具有方法:

voiddraw(Graphics2Dg2d){};

draw()方法中用到了Java绘图里面的Graphics2D类,所有继承drawings类的图形子类都重写了此方法。

这就是Java程序中类的继承的概念。

它对于程序代码的重用是很重要的,将极大的方便和简略程序代码。

(1)程序中包括以下三个基本操作按钮:

1新建(New):

新建一个图形文件。

2打开(Open):

打开一个图形文件。

3保存(Save):

保存当前图形文件。

(2)选择颜色和设置当前画笔粗细的按钮分别为:

颜色(Color)、线条粗细(Stroke)。

(3)选择当前字体风格的选择框为:

粗体(BOLD)、斜体(ITALIC),用以设置当前字体的风格。

(4)选择当前字体的下拉式复选框为:

Styles。

(5)菜单条及其组成:

(6)文件(File)菜单项,包括:

New(新建一个图形文件)、Load(打开一个图形文件)、Save(保存当前图形文件)、Exit(退出程序)。

1颜色(Color)菜单项:

用来设置当前颜色。

2线条粗细(Stroke)菜单项:

用来设置当前画笔粗细。

3帮助(Help)菜单项:

有关的程序帮助提示。

3.2画图板相关操作

(1)新建一个图形文件

单击工具栏上的图标

,或选择File→New菜单,则清除当前所绘制的图像,回到初始画面。

图1

保存

单击工具栏上的图标

,或选择File→Save菜单,则弹出要求保存文件对话框。

如下图:

图2

(2)绘制基本图形

基本图形包括以下几种:

Pencil:

随笔画,图标为:

Line:

直线,图标为:

Rect:

矩形,图标为:

FRect:

实心矩形,图标为:

Oval:

椭圆,图标为:

FOval:

实心椭圆,图标为:

Circle:

圆,图标为:

FCircle:

实心圆,图标为:

RoundRect:

圆角矩形,图标为:

FrRect:

实心圆角矩形,图标为:

Rubber:

橡皮擦,图标为:

绘图时,单击工具栏上相应图形的图标,然后用鼠标拖动,在绘图区域内进行绘图即可。

设置画笔大小

单击工具栏上的图标

,或单击Stroke→SetStroke菜单,则弹出相应的设置当前画笔粗细对话框。

如下图:

图3

选择颜色

单击工具栏区域

,或单击Color→ChooseColor菜单,则弹出相应的选择当前画图颜色对话框。

如下图:

图4

选择字体风格

在工具栏区域

,可以选择相应的字体风格,有粗体、斜体和粗斜体三种可供选择。

选择字体

在工具栏区域

,可以选择字体,本程序中有如下几种字体可供选择:

宋体、隶书、华文彩云、仿宋、华文行楷、方正舒体、TimeNewRoman、Serif、Monospaced、SonsSerif、Garamond。

3.3程序结构说明

本程序主体为一个文件:

QingDrawPad.java。

其中包括的程序段有:

1QingDrawPad():

构造函数,用以初始化。

2chooseColor():

选择当前绘图颜色程序段。

3setStroke():

设置当前画笔粗细程序段。

4loadFile():

调用图形文件程序段。

5newFile():

新建一个图形文件程序段。

6saveFile():

保存当前所绘制图形程序段。

7creatNewItem():

新建一个基本图形单元程序段。

4.编码

publicclassQingDrawPadextendsJFrame//主类,扩展了JFrame类,用来生成主界面

{

privateObjectInputStreaminput;

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

privateJButtonchoices[];//按钮数组,存放以下名称的功能按钮

privateStringnames[]

={

"New",

"Open",

"Save",//这三个是基本操作按钮,包括"新建"、"打开"、"保存"

5.调试分析

画板主要由以下几个部分组成:

(1)主窗体的设计。

主类(QingDrawPad)用来生成主界面,完成画图板的主要框架。

主类由JFrame派生出来。

主界面由菜单栏、工具栏和画图区域三部分组成,布局格式采用BorderLayout布局形式。

(2)菜单栏和工具栏的设计。

菜单栏包括文件菜单栏、颜色菜单栏、线条粗细菜单栏和提示菜单栏。

①文件菜单栏包括文件的新建、打开、保存等选项

②颜色菜单栏可以进行颜色选择

③线条粗细菜单栏设置线条的粗细

④提示菜单栏给出提示信息。

工具栏由新建、打开和保存文件按钮、基本图形的按钮、选择字体风格复选框和字体下拉列表框组成。

在主类中添加并对菜单栏和工具栏添加事件监听。

(3)事件响应的处理。

对菜单栏、工具栏和用鼠标画图的事件响应进行处理。

6.测试结果及运行效果

我们可以看到,整个程序界面很简洁,而且界面操作、提示内容全部是中文,一目了然。

在左上方的菜单栏里有文件、颜色、线条粗细、帮助4个下拉式菜单,可以对绘图文件进行相应的操作。

下面一排是工具栏的工具按钮,从左到右依次为:

新建文件、打开文件、保存文件、随笔画、直线、空心矩形、实心矩形、空心椭圆、空心圆、实心圆、空心圆角矩形、实心圆角矩形、橡皮擦、颜色选择按钮、线条粗细设置按钮、文字添加按钮、粗体字体选择框、斜体字体选择框、字体选择下拉式选择框。

整个工具栏是可以拖动的,可以将它拖动到程序窗口的任意位置。

工具栏下面的整个白色区域就是绘图区域,即绘图面板,它的大小可以随着窗口的大小自动调整。

在窗口的最底部是程序设计作者标注,以及鼠标状态提示条,可以显示当前的鼠标状态,包括进出窗口、移动、单击、松开等。

7.系统开发所用到的技术

在设计画图板的时候,我们运用了许多上课知道的知识,比如:

类(子类与父类),继承。

参考文献

[1]陈明.Java语言程序设计课程实践.北京:

清华大学出版社,2008.

[2]杨树林、胡洁萍.Java语言最新实用案例教程.北京:

清华大学出版社,2006.

[3]谭浩强.Java程序设计(第二版).北京:

清华大学出版社,2006

[4]谭浩强.Java程序设计(第二版)题解与上机指导(修订版),2010.

 

附录全部代码

packageWuDrawPad;

importjava.awt.*;

importjava.awt.geom.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.io.*;

importjava.util.*;

publicclassQingDrawPadextendsJFrame//主类,扩展了JFrame类,用来生成主界面

{

privateObjectInputStreaminput;

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

privateJButtonchoices[];//按钮数组,存放以下名称的功能按钮

privateStringnames[]

={

"New",

"Open",

"Save",//这三个是基本操作按钮,包括"新建"、"打开"、"保存"

/*下面是我们的画图板上面有的基本的几个绘图单元按钮*/

"Pencil",

"Line",

"Rect",

"FRect",

"Oval",

"FOval",

"Circle",

"FCircle",

"RoundRect",

"FrRect",

"Rubber",

"Color",

"Stroke",

"Word"

};

privateStringstyleNames[]={

"宋体","隶书","华文彩云","仿宋","华文行楷",

"方正舒体","TimesNewRoman","Serif","Monospaced",

"SonsSerif","Garamond"

};

privateIconitems[];

privateStringtipText[]={

//这里是鼠标移动到相应按钮上面上停留时给出的提示说明条

"新建一个文件",

"打开一个文件",

"保存当前文件",

"绘制线条",

"绘制直线",

"绘制空心矩形",

"绘制实心矩形",

"绘制空心椭圆",

"绘制实心椭圆",

"绘制空心圆形",

"绘制实心圆形",

"绘制空心圆角矩形",

"绘制实心圆角矩形",

"橡皮擦",

"选择颜色",

"设置线条粗细",

"输入文字"

};

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;//设置画笔粗细,默认值为1.0f

JCheckBoxbold,italic;

//bold为粗体,italic为斜体,二者可以同时使用

JComboBoxstyles;

publicQingDrawPad()

{

super("卿乐绘图画板(中国风)");

JMenuBarbar=newJMenuBar();//定义菜单条

JMenufileMenu=newJMenu("文件");

//fileMenu.setMnemonic('F');

//新建文件菜单条

JMenuItemnewItem=newJMenuItem("新建");

newItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEvente)

{

newFile();//如果被触发,则调用新建文件函数段

}

}

);

fileMenu.add(newItem);

//保存文件菜单项

JMenuItemsaveItem=newJMenuItem("保存");

saveItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEvente)

{

saveFile();//如果被触发,则调用保存文件函数段

}

}

);

fileMenu.add(saveItem);

//打开文件菜单项

JMenuItemloadItem=newJMenuItem("打开");

loadItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEvente)

{

loadFile();//如果被触发,则调用打开文件函数段

}

}

);

fileMenu.add(loadItem);

fileMenu.addSeparator();

//退出菜单项

JMenuItemexitItem=newJMenuItem("退出");

exitItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEvente)

{

System.exit(0);//如果被触发,则退出画图板程序

}

}

);

fileMenu.add(exitItem);

bar.add(fileMenu);

//设置颜色菜单条

JMenucolorMenu=newJMenu("颜色");

//选择颜色菜单项

JMenuItemcolorItem=newJMenuItem("选择颜色");

colorItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEvente)

{

chooseColor();//如果被触发,则调用选择颜色函数段

}

}

);

colorMenu.add(colorItem);

bar.add(colorMenu);

//设置线条粗细菜单条

JMenustrokeMenu=newJMenu("线条粗细");

//设置线条粗细菜单项

JMenuItemstrokeItem=newJMenuItem("设置线条粗细");

strokeItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEvente)

{

setStroke();

}

}

);

strokeMenu.add(strokeItem);

bar.add(strokeMenu);

//设置提示菜单条

JMenuhelpMenu=newJMenu("帮助");

//设置提示菜单项

JMenuItemaboutItem=newJMenuItem("关于画板");

aboutItem.addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEvente)

{

JOptionPane.showMessageDialog(null,

"卿乐画板\n作者:

刘佳、任家苇、吴迪指导教师:

李孝贵\n于2012年12月22日,大连科技学院",

"画图板说明",

JOptionPane.INFORMATION_MESSAGE);

}

}

);

helpMenu.add(aboutItem);

bar.add(helpMenu);

items=newImageIcon[names.length];

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

drawingArea=newDrawPanel();

choices=newJButton[names.length];

buttonPanel=newJToolBar(JToolBar.VERTICAL);

buttonPanel=newJToolBar(JToolBar.HORIZONTAL);

ButtonHandlerhandler=newButtonHandler();

ButtonHandler1handler1=newButtonHandler1();

//导入我们需要的图形图标,这些图标都存放在与源文件相同的目录下面

for(inti=0;i

{

items[i]=newImageIcon(names[i]+".gif");

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

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

buttonPanel.add(choices[i]);

}

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

for(inti=3;i

{

choices[i].addActionListener(handler);

}

choices[0].addActionListener(

newActionListener(){

publicvoidactionPerformed(ActionEvente)

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1