画图板课程设计报告精品.docx

上传人:b****2 文档编号:17446064 上传时间:2023-07-25 格式:DOCX 页数:22 大小:35.28KB
下载 相关 举报
画图板课程设计报告精品.docx_第1页
第1页 / 共22页
画图板课程设计报告精品.docx_第2页
第2页 / 共22页
画图板课程设计报告精品.docx_第3页
第3页 / 共22页
画图板课程设计报告精品.docx_第4页
第4页 / 共22页
画图板课程设计报告精品.docx_第5页
第5页 / 共22页
画图板课程设计报告精品.docx_第6页
第6页 / 共22页
画图板课程设计报告精品.docx_第7页
第7页 / 共22页
画图板课程设计报告精品.docx_第8页
第8页 / 共22页
画图板课程设计报告精品.docx_第9页
第9页 / 共22页
画图板课程设计报告精品.docx_第10页
第10页 / 共22页
画图板课程设计报告精品.docx_第11页
第11页 / 共22页
画图板课程设计报告精品.docx_第12页
第12页 / 共22页
画图板课程设计报告精品.docx_第13页
第13页 / 共22页
画图板课程设计报告精品.docx_第14页
第14页 / 共22页
画图板课程设计报告精品.docx_第15页
第15页 / 共22页
画图板课程设计报告精品.docx_第16页
第16页 / 共22页
画图板课程设计报告精品.docx_第17页
第17页 / 共22页
画图板课程设计报告精品.docx_第18页
第18页 / 共22页
画图板课程设计报告精品.docx_第19页
第19页 / 共22页
画图板课程设计报告精品.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

画图板课程设计报告精品.docx

《画图板课程设计报告精品.docx》由会员分享,可在线阅读,更多相关《画图板课程设计报告精品.docx(22页珍藏版)》请在冰点文库上搜索。

画图板课程设计报告精品.docx

画图板课程设计报告精品

计算机科学与技术系

 

课程设计报告

2011~2012学年第一学期

课程

Java语言基础

课程设计名称

画图板

专业班级

姓名

指导教师

 

2011年9月

一、需求分析

演示程序为用户可以用画笔画出各种图形,输入文字,橡皮等各种功能,并且可以保存用户编辑的图片,可以打开本地图片,设置画笔与面板背景的颜色。

(1)能用拖橡皮檫的手法绘制各类图形(直线、椭圆、矩形、文字)

    

(2)支持画笔颜色、文字大小设置;

    (3)能将画面中的所有图形存储到文件中;

    (4)能从文件读取图形进行增补;

    (5)采用对话框获取图形文件名;

    (6)利用鼠标选取图形,删除;

由以上设计要求可以分析出程序主要是要先使用java图形界面编辑的方法设计出一个图形界面,设计出的图形界面要包含一个菜单条JMenuBar,而这个菜单条又包含有几个菜单如:

MenuFile(用于文件的打开,保存,新建,另存为,退出),MenuSight(包括工具箱和状态栏,主要用于控制工具栏和鼠标点坐标的显示和隐藏),MenuColor(用于画笔和面板背景颜色的设置),MenuHelp(给用户提供一些通知,可有可无),其中为了方便用户比较容易的通过MenuSight控制工具栏和状态栏,我们将工具栏和状态栏的菜单项用JcheckBoxMenuItem设计,这个是可以被选定或取消选定的菜单项。

如果被选定,菜单项的旁边通常会出现一个复选标记。

如果未被选定或被取消选定,菜单项的旁边就没有复选标记。

二、设计

1、设计思想

关于主要的设计就是Java中有关图形界面的编程,因此程序中设计时包括相关组件的选取,界面的布局方式,事件的监听以及对触发事件的的处理。

在程序中选取的组件JMenuBar,JCheckBoxMenuItem,JButton,JToggleButton,JToolBar,JfileChooser,JFrame等。

布局方式主要是边界布局,在程序中实现的事件监听有动作事件,窗口事件,键盘事件等,使用这些事件分别用来实现程序中规定的功能。

2、功能设计

本程序主要功能就是通过一个图形界面实现对图形的编辑,可以对原来存在的文件打开,并对输入后可以生成文件并保存。

关于这些功能的实现可以使用JFileChooser组件,其中的方法可以实现对打开或者保存的文件显示出文件名和存储路径等功能,符合设计要求

对于画笔和面板背景颜色的编辑可以使用JColorChooser提供一个用于允许用户操作和选择颜色的控制器窗格,然后调用JcolorChooser的showDialog()方法就可以调出画笔和背景颜色的编辑了

3、详细设计

(1)程序主界面是一个窗口,在程序设计了一个类MyWindowsPlot,它继承了JFrame类,作用是显示出一个窗口,在这个窗口中分别添加相关组件,设计布局方式,并对相关组件进行事件监听。

主要代码如下:

FileselFiles;

Imageimg;

publicJPanelcontentPane;

BufferedImageimage;

publicColorbgColor=newColor(255,255,255);

publicColorpColor=newColor(0,0,0);

BorderLayoutBorderLayout1=newBorderLayout();

JMenuBarjMenuBar1=newJMenuBar();

JMenuMenuFile=newJMenu();

JMenuItemMenuNew=newJMenuItem();

JMenuItemMenuOpen=newJMenuItem();

JMenuItemMenuSave=newJMenuItem();

JMenuItemMenuSaveAs=newJMenuItem();

JMenuItemMenuExit=newJMenuItem();

JMenuMenuSight=newJMenu();

JMenuMenuColor=newJMenu();

JMenuItemMenuEditColor=newJMenuItem();

JMenuItemMenuEditPencilColor=newJMenuItem();

JMenuMenuHelp=newJMenu();

JMenuItemMenuHelpText=newJMenuItem();

JMenuItemMenuAbout=newJMenuItem();

JMenumenuColour=newJMenu();

JMenuItemitemNative=newJMenuItem();

JMenuItemitemMotif=newJMenuItem();

JMenuItemitemMetal=newJMenuItem();

JCheckBoxMenuItemtool=newJCheckBoxMenuItem("工具箱(T)");

JCheckBoxMenuItemstate=newJCheckBoxMenuItem("状态栏(F)");

JToolBarjToolBar1=newJToolBar();

JButtonjbNew=newJButton();

JButtonjbSave=newJButton();

JButtonjbOpen=newJButton();

JToggleButtonjbPencil=newJToggleButton();

JToggleButtonjbBrush=newJToggleButton();

JToggleButtonjbBeeline=newJToggleButton();

JToggleButtonjbRotundity=newJToggleButton();

JToggleButtonjbPolygon=newJToggleButton();

JToggleButtonjbRect=newJToggleButton();

JToggleButtonjbFillRotundity=newJToggleButton();

JToggleButtonjbFillRect=newJToggleButton();

JToggleButtonjbFillPolygon=newJToggleButton();

JLabeljLabel1=newJLabel();

ImageIconimageNew=newImageIcon(MyWindowsPlot.class.getResource("New24.gif"));

ImageIconimageSave=newImageIcon(MyWindowsPlot.class.getResource("Save24.gif"));

ImageIconimageOpen=newImageIcon(MyWindowsPlot.class.getResource("Open24.gif"));

ImageIconimageFill=newImageIcon(MyWindowsPlot.class.getResource("Fill.gif"));

ImageIconimageBrush=newImageIcon(MyWindowsPlot.class.getResource("Brush.gif"));

ImageIconimageBeeline=newImageIcon(MyWindowsPlot.class.getResource("Beeline.gif"));

ImageIconimageRotundity=newImageIcon(MyWindowsPlot.class.getResource("Rotundity.gif"));

ImageIconimagePolygon=newImageIcon(MyWindowsPlot.class.getResource("Polygon.gif"));

ImageIconimageRect=newImageIcon(MyWindowsPlot.class.getResource("Rect.gif"));

ImageIconimageAbout=newImageIcon(MyWindowsPlot.class.getResource("About24.gif"));

ImageIconimageFillRect=newImageIcon(MyWindowsPlot.class.getResource("fillRect.gif"));

ImageIconimageFillOval=newImageIcon(MyWindowsPlot.class.getResource("fillOval.gif"));

ImageIconimageFillPolygon=newImageIcon(MyWindowsPlot.class.getResource("fillPolygon.gif"));

staticImagewindowsIcon=Toolkit.getDefaultToolkit().getImage(MyWindowsPlot.class.getResource("12.gif"));

ButtonGroupcbg;

MyActionListenermaListener;

MyItemListenermiListener;

//设置画笔颜色变量

publicColor[]drawLineColor=newColor[10000];

publicColor[]drawOvalColor=newColor[10000];

publicColor[]drawRectColor=newColor[10000];

publicColor[]fillRectColor=newColor[10000];

publicColor[]fillOvalColor=newColor[10000];

//绘制直线的变量

publicintcountDrawLine=0;

publicintmousePressedDrawLineX[]=newint[10000],mousePressedDrawLineY[]=newint[10000];

publicintmouseReleasedDrawLineX[]=newint[10000],mouseReleasedDrawLineY[]=newint[10000];

//绘制矩行的变量

publicintcountDrawRect=0;

publicintmousePressedDrawRectX[]=newint[10000],mousePressedDrawRectY[]=newint[10000];

publicintmouseReleasedDrawRectX[]=newint[10000],mouseReleasedDrawRectY[]=newint[10000];

publicintmouseDraggedDrawRectX=0,mouseDraggedDrawRectY=0;

//绘制圆形的变量

publicintcountDrawOval=0;

publicintmouseDraggedDrawOvalX=0,mouseDraggedDrawOvalY=0;

publicintmouseReleasedDrawOvalX[]=newint[10000],mouseReleasedDrawOvalY[]=newint[10000];

publicintmousePressedDrawOvalX[]=newint[10000],mousePressedDrawOvalY[]=newint[10000];

//绘制填充圆形的变量

publicintcountFillOval=0;

publicintmouseDraggedFillOvalX=0,mouseDraggedFillOvalY=0;

publicintmouseReleasedFillOvalX[]=newint[10000],mouseReleasedFillOvalY[]=newint[10000];

publicintmousePressedFillOvalX[]=newint[10000],mousePressedFillOvalY[]=newint[10000];

//绘制多边形的变量

publicintcountDrawPolygon=0;

publicintmousePressedDrawPolygonX[]=newint[10000],mousePressedDrawPolygonY[]=newint[10000];

//绘制填充多边形的变量

publicintcountFillPolygon=0;

publicintmousePressedFillPolygonX[]=newint[10000],mousePressedFillPolygonY[]=newint[10000];

//绘制填充矩形的变量

publicintcountFillRect=0;

publicintmousePressedFillRectX[]=newint[10000],mousePressedFillRectY[]=newint[10000];

publicintmouseReleasedFillRectX[]=newint[10000],mouseReleasedFillRectY[]=newint[10000];

publicintmouseDraggedFillRectX=0,mouseDraggedFillRectY=0;

//绘制画笔的变量

//GeneralPath对象实例

GeneralPathgPath=newGeneralPath();

PointpencilPoint;

//绘制擦皮的变量

publicintcountDrawBrush=0;

publicintmouseDrawBrushX[]=newint[10000],mouseDrawBrushY[]=newint[10000];

//绘制图形的监听器

MouseListenermlOneDrawRect,mlTwoDrawRect,mlOneFillRect,mlTwoFillRect;

MouseMotionListenermmlDrawRect,mmlFillRect;

MouseListenermlOneDrawLine,mlTwoDrawLine;

MouseListenermlOneDrawOval,mlTwoDrawOval,mlOneFillOval,mlTwoFillOval;

MouseMotionListenermmlDrawOval,mmlFillOval;

MouseListenermlOneDrawPolygon,mlOneFillPolygon;

MouseListenermlOneDrawPencil;

MouseMotionListenermmlDrawPencil;

MouseListenermlOneDrawBrush;

MouseMotionListenermmlDrawBrush;

contentPane.setLayout(BorderLayout1);

contentPane.setBackground(bgColor);

setJMenuBar(jMenuBar1);

setSize(newDimension(750,550));

setTitle("WindowsPlot画图板");

MenuFile.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuFile.setText("文件(F)");

MenuFile.setMnemonic('F');

MenuNew.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuNew.setText("新建(N)");

MenuNew.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK,false));

MenuNew.setActionCommand("NewPage");

MenuOpen.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuOpen.setText("打开(O)");

MenuOpen.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK,false));

MenuOpen.setActionCommand("MenuOpen");

MenuSave.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuSave.setText("保存(S)");

MenuSave.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK,false));

MenuSave.setActionCommand("MenuSave");

MenuSaveAs.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuSaveAs.setText("另存为(A)");

MenuSaveAs.setAccelerator(KeyStroke.getKeyStroke('A',java.awt.Event.CTRL_MASK,false));

MenuSaveAs.setActionCommand("MenuSaveAs");

MenuExit.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuExit.setText("退出(E)");

MenuExit.setAccelerator(KeyStroke.getKeyStroke('E',java.awt.Event.CTRL_MASK,false));

MenuExit.setActionCommand("Exit");

MenuSight.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuSight.setText("查看(V)");

MenuSight.setMnemonic('V');

MenuColor.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

tool.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

tool.setAccelerator(KeyStroke.getKeyStroke('T',java.awt.Event.CTRL_MASK,false));

state.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

state.setAccelerator(KeyStroke.getKeyStroke('F',java.awt.Event.CTRL_MASK,false));

MenuColor.setText("颜色(C)");

MenuColor.setMnemonic('C');

MenuEditColor.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuEditColor.setText("背景颜色(B)");

MenuEditColor.setAccelerator(KeyStroke.getKeyStroke('B',java.awt.Event.CTRL_MASK,false));

MenuEditColor.setActionCommand("EditColor");

MenuEditPencilColor.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuEditPencilColor.setText("画笔颜色(P)");

MenuEditPencilColor.setAccelerator(KeyStroke.getKeyStroke('P',java.awt.Event.CTRL_MASK,false));

MenuEditPencilColor.setActionCommand("EditPencilColor");

itemMetal.setActionCommand("itemMetal");

MenuHelp.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuHelp.setText("帮助(H)");

MenuHelp.setMnemonic('H');

MenuHelpText.setFont(newjava.awt.Font("宋体",Font.PLAIN,13));

MenuHelpText.setText("帮助主题(H)");

MenuHelpText.setAccelerator(KeyStroke.getKeyStroke('H',java.awt.Event.CTRL_MASK,false));

MenuHelpText.setActionCommand("MenuHelpText");

MenuAbout.setFont(newjava.awt.Font("宋体",Font.PL

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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