已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档2016全新精品资料全新公文范文全程指导写作独家原创1/25设计报告格式15400字吉林师范大学博达学院计算机与信息科学系课程设计报告课程名称设计题目画笔程序专业信息科学技术姓名李瑞雪班级学号指导教师侯锟吕凯2012年3月目录课程设计题目审批表2完成情况一览表3摘要4一、设计分析精品文档2016全新精品资料全新公文范文全程指导写作独家原创2/255二、设计要求5三、设计原理6四、系统调试9五、总结10附录10精品文档2016全新精品资料全新公文范文全程指导写作独家原创3/251源代码102参考资料241课程设计题目审批表课程名称JAVA课程设计2完成情况一览表3摘要本次课程设计是利用JAVA的GUIGRAPHICALUSERINTERFACE,图形用户接口实现画图应用程序。其目的是通过本课程设计使我们能够较全面的掌握面向对象程序设计的开发方法,以便能较全面的理解、掌握和综合运用所学的知识,提高自身的编程能力。精品文档2016全新精品资料全新公文范文全程指导写作独家原创4/25画图程序运用JAVA语言实现了作为画笔应具备的基本功能要求,作为一个画笔,它能在程序界面内实现任意书写的功能,还可以根据作图人不同的要求来改变画笔颜色、宽度以达到不同的作图效果。图片完成后可以进行保存。打开已有的图形文件可以进行修改编辑。关键字JAVA;图形界面;画笔;像素点;颜色4一、设计分析在JCREATOR环境中利用JAVA程序设计语言设计一个画图工具,本次设计重点难点应在于画图工具主窗体的设计、画图的基本功能实现。1、主窗体的设计主类用来生成主界面,完成画图板的主要框架。主界面由菜单栏、工具栏和画图区域三部分组成。2、画图的基本功能(1)打开、保存一个图形文件。(2)设置画笔的粗细程度。(3)设置画笔的颜色。二、设计要求1、根据要求查阅相关文献,对画笔程序进行设计,实现画笔的基本功能。程序功能需求(1)利用JAVA语言设计一个画图应用程序。精品文档2016全新精品资料全新公文范文全程指导写作独家原创5/25(2)在程序界面内可改变画笔的粗细程度和颜色,根据不同的要求,设置颜色工具条内有常用的几种颜色和自定义颜色,以达到不同的效果。(3)可完成图形文件的保存、打开功能。还可以对打开的图形文件进行修改编辑。2、掌握JAVA图形用户界面程序的布局与设计,掌握JAVA图形用户界面中组件的事件处理方法。巩固加深对JAVA语言课程基本知识的理解与掌握,培养我们利用JAVA语言进行程序的编写与运用。5三、设计原理本程序通过调用JAVA提供的BORDERLAYOUT,BUTTON,COLOR,GRAPHICS,JFRAME,JPANEL等基本类进行了简单的界面设计,运用了JAVA中类的继承特性实现了对父类方法的调用。对菜单栏、工具栏和鼠标画图的事件响应进行处理。1、菜单栏中文件的打开和保存菜单事件的处理JAVA把每个文件都视作顺序字节流。如果要在JAVA中进行文件处理,则必须用到JAVAIO包。这个包定义了一些流类,选用FILEINPUTSTREAM和FILEOUTPUTSTREAM,通过建立这些文件的对象便可打开文件。在程序中可以用NEWFILE,LOADFILE和SAVEFILE三个函数分别实现文件的新建、精品文档2016全新精品资料全新公文范文全程指导写作独家原创6/25打开和保存。2、工具栏事件的处理主要有一些BUTTON组成,在画图类DRAWPANEL中定义CREATENEWITEM函数处理工具栏中的画图事件。3、鼠标画图由于画图板主要是用来画图,所以需要在程序中添加对鼠标拖动等事件进行监听并处理。主界面框架如图1图1主界面6主界面代码如下MAINFRAMENEWJFRAMEMAINFRAMESETTITLE“画图“MAINFRAMESETSIZEWIDTH,HEIGHTMAINFRAMESETRESIZABLEFALSE本次画笔程序的界面框架主要包括4个部分(1)菜单栏包括两个菜单“文件”和“帮助”。每个菜单中又包括不同的菜单选项。每个选项用于触发相应的事件。代码如下PUBLICVOIDSHOWMENUMENUBARNEWJMENUBARFILEMENUNEWJMENU“文件精品文档2016全新精品资料全新公文范文全程指导写作独家原创7/25“图2菜单栏(2)设置线宽工具条用来设计线宽的选项。包括1个设置线宽的面板,由JPANEL类创建,面板定义为带提示文字的边框。设置线宽面板按6行1列的网格布局,依次将各单选按钮添加到单选按钮组和线宽面板。单选按钮用来设计画笔的线宽。每个单选按钮都触发相应的事件,然后将线宽面板添加到线宽工具条。代码如下JRADIOBUTTONB1NEWJRADIOBUTTON“1“,TRUEJRADIOBUTTONB3NEWJRADIOBUTTON“3“7JRADIOBUTTONB5NEWJRADIOBUTTON“5“JRADIOBUTTONB10NEWJRADIOBUTTON“10“图3线宽工具条(3)设置颜色工具条用来设置画笔的颜色。包括1个标签6个按钮,依次添加到工具条中。代码如下INFONEWJLABEL“设置颜色“图4颜色工具条精品文档2016全新精品资料全新公文范文全程指导写作独家原创8/25图5颜色工具条中自定义颜色的弹出窗口(4)窗口的绘图区域绘图区域面板,由自定义的类MYPANEL创建,该类8继承自JPANEL并实现了MOUSEMOTIONLISTENER接口,作为鼠标事件的监听者,完成画笔的绘制功能。图6示例图四、系统调试经过此次课程设计,我了解到自己对JAVA语言,只学到了最基本的知识,因为在课程设计的过程中遇到了一些问题,将自己所学到的知识运用到实际例子中没有想象的那么简单。我这次设计的画笔程序是一个图形用户界面设计的实例,要将画图工具设计好就要经过以下几个步骤设置布局、初始化组建、注册监听器、添加组件实现事务处理方法。所以需要记住大量的组件和事务处理方法。例如JAVASWING是一个用于开发JAVA图形化应用程序用户界面的开发工具包。SWING提供了JFRAME、JDIALOG和JAPPET三个通用的顶层容器类。面板类JPANEL是一种最常见的中间容器。SWING中常见组件有标签、文本框、编辑框、复选框等。这些都应该是在日常的学习中积累起来的,在短时间内完成一个程序设计,需要查阅大量的资料。精品文档2016全新精品资料全新公文范文全程指导写作独家原创9/259五、总结回顾起此次课程设计,至今我仍感慨颇多,从确定题目到完成整个编程,从理论到实践,在整整两个星期的日子里,学到很多很多的东西,不仅可以巩固以前所学过的知识,还学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正做出东西来,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解不够深刻,掌握不够牢固,比如说类与类之间的关系等,通过这次课程设计之,我会把以前所学过的知识重新温故。毕业在即,在以后的工作学习中,我还会将更多的时间与精力投入到JAVA的学习中,不断为自己所学的知识补充新鲜血液。附录1源代码IMPORTJAVAXSWINGIMPORTJAVAAWTIMPORTJAVAAWTEVENT精品文档2016全新精品资料全新公文范文全程指导写作独家原创10/25IMPORTJAVAIOIMPORTJAVAUTILPUBLICCLASSMYPAINT10PUBLICSTATICFINALINTWIDTH600PUBLICSTATICFINALINTHEIGHT400JFRAMEMAINFRAMEJMENUBARMENUBARJMENUFILEMENUJMENUHELPMENU/JMENUHELPMENUJMENUITEMOPENITEMJMENUITEMSAVEITEMJMENUITEMEXITITEMJMENUITEMABOUTITEMJTOOLBARLINETOOLJTOOLBARCOLORTOOLJPANELSETLINEPANELJLABELINFOJBUTTONBLACKBUTTONJBUTTONWHITEBUTTONJBUTTONREDBUTTONJBUTTONGREENBUTTON精品文档2016全新精品资料全新公文范文全程指导写作独家原创11/25JBUTTONBLUEBUTTONJBUTTONOTHERBUTTONJCOLORCHOOSEROTHERCHOOSER11MYPANELDRAWPANE1PUBLICVOIDSHOWPAINTMAINFRAMENEWJFRAMEMAINFRAMESETTITLE“画图“MAINFRAMESETSIZEWIDTH,HEIGHTMAINFRAMESETRESIZABLEFALSE/设置用户关闭框架时的响应动作MAINFRAMESETDEFAULTCLOSEOPERATIONJFRAMEEXIT_ON_CLOSESHOWMENUSHOWTOOLMAINFRAMESHOWPUBLICVOIDSHOWMENUMENUBARNEWJMENUBARFILEMENUNEWJMENU“文件“OPENITEMNEWJMENUITEM“打开O“,OSAVEITEMNEWJMENUITEM“保存S“,SEXITITEMNEWJMENUITEM“退出X“,X/设置打开菜单项的快捷键为CTRLO精品文档2016全新精品资料全新公文范文全程指导写作独家原创12/25OPENITEMSETACCELERATORKEYSTROKEGETKEYSTROKEKEYEVENTVK_O,INPUTEVENTCTRL_MASKSAVEITEMSETACCELERATORKEYSTROKEGETKEYSTROKEKEYEVENTVK_O,INPUTEVENTCTRL_MASK12EXITITEMSETACCELERATORKEYSTROKEGETKEYSTROKEKEYEVENTVK_O,INPUTEVENTCTRL_MASKOPENITEMADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEDRAWPANE1LOADFILESAVEITEMADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEDRAWPANE1SAVEFILEEXITITEMADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTESYSTEMEXIT0/定义帮助菜单HELPMENUNEWJMENU“帮助“,FALSE/定义关于菜单,设置快捷键为A精品文档2016全新精品资料全新公文范文全程指导写作独家原创13/25ABOUTITEMNEWJMENUITEM“关于A“,A/关于菜单项事件监听器,弹出一个消息框ABOUTITEMADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEJOPTIONPANESHOWMESSAGEDIALOGMAINFRAME,“这是一个简单的画图程序“,“提示“,JOPTIONPANEINFORMATION_MESSAGE/设置菜单栏13MENUBARADDFILEMENUMENUBARADDHELPMENUFILEMENUADDOPENITEMFILEMENUADDSAVEITEMFILEMENUADDSEPARATORFILEMENUADDEXITITEMFILEMENUADDABOUTITEM/设置菜单栏添加到主框架MAINFRAMESETJMENUBARMENUBARPUBLICVOIDSHOWTOOLLINETOOLNEWJTOOLBARLINETOOLSETSIZEWIDTH/4,HEIGHT/53/按边界布局方式将设置线宽工具条放在WE5T部分精品文档2016全新精品资料全新公文范文全程指导写作独家原创14/25CONTAINERCONTENTPANEMAINFRAMEGETCONTENTPANECONTENTPANEADDLINETOOL,BORDERLAYOUTWEST/设置线宽面板的实现SETLINEPANELNEWJPANELSETLINEPANELSETSIZEWIDTH/5,HEIGHT/54/为设置线宽面板定义带提示文字的边框SETLINEPANELSETBORDERBORDERFACTORYCREATETITLEDBORDER“设置线宽“/设置线宽面板按6行1列的网络布局14SETLINEPANELSETLAYOUTNEWGRIDLAYOUT6,1/定义单选按钮组BUTTONGROUPBGNEWBUTTONGROUP/定义单选按钮,设置单选按钮1为已选状态JRADIOBUTTONB1NEWJRADIOBUTTON“1“,TRUEJRADIOBUTTONB3NEWJRADIOBUTTON“3“JRADIOBUTTONB5NEWJRADIOBUTTON“5“JRADIOBUTTONB10NEWJRADIOBUTTON“10“B1ADDITEMLISTENERNEWITEMLISTENERPUBLICVOIDITEMSTATECHANGEDITEMEVENTEIFEGETSTATECHANGEESELECTEDDRAWPANE1SETLINEWIDTH1精品文档2016全新精品资料全新公文范文全程指导写作独家原创15/25/单选按钮3事件监听器,设置线宽为3像素点B3ADDITEMLISTENERNEWITEMLISTENERPUBLICVOIDITEMSTATECHANGEDITEMEVENTEIFEGETSTATECHANGEESELECTEDDRAWPANE1SETLINEWIDTH3B5ADDITEMLISTENERNEWITEMLISTENERPUBLICVOIDITEMSTATECHANGEDITEMEVENTEIFEGETSTATECHANGEESELECTEDDRAWPANE1SETLINEWIDTH5B10ADDITEMLISTENERNEWITEMLISTENER15PUBLICVOIDITEMSTATECHANGEDITEMEVENTEIFEGETSTATECHANGEESELECTEDDRAWPANE1SETLINEWIDTH10/将单选按钮添加到按钮组BGADDB1BGADDB3BGADDB5BGADDB10/将单选按钮添加到设置线宽面板SETLINEPANELADDB1SETLINEPANELADDB3SETLINEPANELADDB5SETLINEPANELADDB10/将设置线宽面板添加到设置线宽工具条LINETOOLADDSETLINEPANEL精品文档2016全新精品资料全新公文范文全程指导写作独家原创16/25/绘图区面板的实现DRAWPANE1NEWMYPANELDRAWPANE1SETSIZEWIDTH/43,HEIGHT/53/设置绘图区面板背景色为白色DRAWPANE1SETBACKGROUNDCOLORWHITE/添加绘图区监听器,监听器就是绘图面板对象本身DRAWPANE1ADDMOUSEMOTIONLISTENERDRAWPANE1/按边界布局方式将绘图区面板放在CENTER部分CONTENTPANEADDDRAWPANE1,BORDERLAYOUTCENTER/设置颜色工具条的实现COLORTOOLNEWJTOOLBAR16COLORTOOLSETSIZEWIDTH,HEIGHT/5/按边界布局方式将设置颜包工具条放在SOUTH部分CONTENTPANEADDCOLORTOOL,BORDERLAYOUTSOUTHINFONEWJLABEL“设置颜色“/定义设置颜色的按钮,用颜色图标表示要设置的颜色BLACKBUTTONNEWJBUTTON“黑“WHITEBUTTONNEWJBUTTON“白“REDBUTTONNEWJBUTTON“红“GREENBUTTONNEWJBUTTON“绿“BLUEBUTTONNEWJBUTTON“蓝“精品文档2016全新精品资料全新公文范文全程指导写作独家原创17/25/自定义颜色设置按钮为文字按钮OTHERBUTTONNEWJBUTTON“自定义“/将提示信息标签和设置颜色按钮添加到设置颜色工具条COLORTOOLADDINFOCOLORTOOLADDBLACKBUTTONCOLORTOOLADDWHITEBUTTONCOLORTOOLADDREDBUTTONCOLORTOOLADDGREENBUTTONCOLORTOOLADDBLUEBUTTONCOLORTOOLADDOTHERBUTTON/黑色按钮事件监听器,设置颜色为黑色BLACKBUTTONADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEDRAWPANE1SETLINECOLORCOLORBLACK/黑色按钮事件监听器,设置颜色为黑色17BLACKBUTTONADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEDRAWPANE1SETLINECOLORCOLORBLACK/白色按钮事件监听器,设置颜色为黑色WHITEBUTTONADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEDRAWPANE1SETLINECOLORCOLORWHITE/红色精品文档2016全新精品资料全新公文范文全程指导写作独家原创18/25事件监听器,设置颜色为黑色REDBUTTONADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEDRAWPANE1SETLINECOLORCOLORRED/绿色按钮事件监听器,设置颜色为黑色GREENBUTTONADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEDRAWPANE1SETLINECOLORCOLORGREEN/蓝色按钮事件监听器,设置颜色为黑色BLUEBUTTONADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEDRAWPANE1SETLINECOLORCOLORBLUE/自定义按钮事件监听器,弹出调色板供用户选择颜色/黑色按钮事件监听器,设置颜色为黑色OTHERBUTTONADDACTIONLISTENERNEWACTIONLISTENER18PUBLICVOIDACTIONPERFORMEDACTIONEVENTECOLORCOLOROTHERCHOOSERNEWJCOLORCHOOSER/显示调色板对话框,返回值为所选的颜色COLOROTHERCHOOSERSHOWDIALOGMAINFRAME,“自定义颜色“,DRAWPANE1GETLINECOLOR精品文档2016全新精品资料全新公文范文全程指导写作独家原创19/25IFCOLORNULLDRAWPANE1SETLINECOLORCOLORCLASSDRAWINGSIMPLEMENTSSERIALIZABLEPUBLICINTX,YPUBLICINTR,G,BPUBLICINTWIDTHPUBLICDRAWINGSPUBLICVOIDCOPYDATADRAWINGSSXSXYSYRSRGSGBSBWIDTHSWIDTHCLASSMYPANELEXTENDSJPANELIMPLEMENTSMOUSEMOTIONLISTENERPRIVATEOBJECTINPUTSTREAMINPUTPRIVATEOBJECTOUTPUTSTREAMOUTPUTPRIVATEINTLINEWIDTH1PRIVATECOLORLINECOLORCOLORBLACKPRIVATEDRAWINGSITEMLIST19PRIVATEINTINDEX1/已绘制基本图元下表,初值为1表示没有绘图PUBLICMYPANELITEMLISTNEWDRAWINGS20000PUBLICVOIDSETLINEWIDTHINTW精品文档2016全新精品资料全新公文范文全程指导写作独家原创20/25IFW0LINEWIDTHWPUBLICVOIDSETLINECOLORCOLORCLINECOLORCPUBLICINTGETLINEWIDTHRETURNLINEWIDTHPUBLICCOLORGETLINECOLORRETURNLINECOLORPUBLICVOIDSAVEFILE/保存一个图形文件程序段JFILECHOOSERFILECHOOSERNEWJFILECHOOSERFILECHOOSERSETFILESELECTIONMODEJFILECHOOSERFILES_ONLYINTRESULTFILECHOOSERSHOWSAVEDIALOGTHIS/选择取消按钮返回IFRESULTJFILECHOOSERCANCEL_OPTIONRETURNFILEFILENAMEFILECHOOSERGETSELECTEDFILE/获得文件名FILENAMECANWRITE/设置文件为可写IFFILENAMENULL|FILENAMEGETNAMEEQUALS“JOPTIONPANESHOWMESSAGEDIALOGFILECHOOSER,“文件错误“,“文件错误“,JOPTIONPANEERROR_MESSAGEELSETRYFILENAMEDELETE/删除已有文件,重新写入数据精品文档2016全新精品资料全新公文范文全程指导写作独家原创21/25FILEOUTPUTSTREAMFOSNEWFILEOUTPUTSTREAMFILENAMEOUTPUTNEWOBJECTOUTPUTSTREAMFOSDRAWINGSRECORDOUTPUTWRITEINTINDEX/写入所绘图元数组元素下标最大值20FORINTI0IDRAWINGSPITEMLISTIOUTPUTWRITEOBJECTPOUTPUTFLUSH/将所有图元信息串行化存储到文件中OUTPUTCLOSEFOSCLOSECATCHIOEXCEPTIONIOEIOEPRINTSTACKTRACEPUBLICVOIDLOADFILE/打开一个图形文件程序段JFILECHOOSERFILECHOOSERNEWJFILECHOOSER/弹出文件选择对话框,选取文件FILECHOOSERSETFILESELECTIONMODEJFILECHOOSERFILES_ONLY/将文件选择对话框基于绘图区面板显示为对话框INTRESULTFILECHOOSERSHOWOPENDIALOGTHISIFRESULTJFILECHOOSERCANCEL_OPTIONRETURNFILEFILENAMEFILECHOOSERGETSELECTEDFILEFILENAMECANREAD/设置文件可读精品文档2016全新精品资料全新公文范文全程指导写作独家原创22/25IFFILENAMENULL|FILENAMEGETNAMEEQUALS“JOPTIONPANESHOWMESSAGEDIALOGFILECHOOSER,“文件错误“,“文件错误“,JOPTIONPANEERROR_MESSAGEELSETRY/新建输入文件流FILEINPUTSTREAMFISNEWFILEINPUTSTREAMFILENAME21INPUTNEWOBJECTINPUTSTREAMFISDRAWINGSINPUTRECORDINTCOUNTNUMBER0COUNTNUMBERINPUTREADINTFORINDEX0INDEXINPUTRECORDDRAWINGSINPUTREADOBJECTITEMLISTINDEXNEWDRAWINGS/新建已绘图元数组ITEMLISTINDEXCOPYDATAINPUTRECORDINDEXCOUNTNUMBERINPUTCLOSECATCHEOFEXCEPTIONENDOFFILEEXCEPTIONJOPTIONPANESHOWMESSAGEDIALOGT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海市第一人民医院招聘笔试备考题库及答案详解一套
- 2025年85普法试题及答案
- 气相沉积技术
- 2020-2025年基金从业资格证之私募股权投资基金基础知识押题练习试卷A卷附答案
- 2025年高效太阳能利用项目可行性研究报告及总结分析
- 2025年公务员时事政治试题及参考答案
- 2025年企业环境影响评估项目可行性研究报告及总结分析
- 2025年农产品供应链协议(有机蔬菜)
- 2025年老年人社区活动中心项目可行性研究报告及总结分析
- 2025年线下零售店数字化转型可行性研究报告及总结分析
- 白术种植技术与栽培管理
- 2025阀门装配工艺规程
- 2025年人文知识竞赛试题库及答案
- 基础教育改革方向与重点问题研究
- 2025年春季高考复习必背英语考纲词汇单词
- 2025年中国邮政集团湖北分公司招聘笔试参考题库含答案解析
- 2025年度豪华酒吧独家艺人合作协议范本3篇
- 报关代理协议
- 湖北理工学院《数字逻辑》2022-2023学年期末试卷
- 《毕业生登记表》模板
- (正式版)JBT 3300-2024 平衡重式叉车 整机试验方法
评论
0/150
提交评论