还剩23页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
用J__a程序编写一个记事本程序的设计报告学习中心(点)泾阳学习中心专业计算机科学与技术层次专升本姓名李永固批次112目录
一、设计分析1
二、程序结构1
三、各模块的功能及程序说明
21、类设计
22、主要功能代码实现4
四、源程序9
五、操作方法20
六、试验结果20
七、设计体会22用J__a程序编写一个记事本程序的设计报告
一、设计要求
1.用图形用户界面实现
2.能实现编辑、保存、另存为、查找替换等功能
二、程序结构流程图��调用Loading方法启动dluThread线程登陆界面�开始dluThread线程结束后调用MiniText方法�启动MainFunction的主函数main�调用initTextPane方法初始化面板调用initMenu方法初始化菜单�调用initAboutDialog方法初始化关于对话框�调用initToolBar方法初始化工具栏�调用initRightKey方法初始化右键设置�启动runtime线程创建动态时间按钮�退出图1基本流程图本J__a文本编辑器功能设计如下�基本功能�文件�查看�帮助�格式�工具�新建、打开、保存、另存为、打印等�编辑�复制、粘贴、删除、撤销等自动换行系统记事本字体颜色系统计算器关于查找时间图2基本功能图
三、各模块的功能及程序说明
1、类设计
(1)类MiniText,包括initTextPane方法初始化面板,initMenu方法初始化菜单,initAboutDialog方法初始化关于对话框,initToolBar方法初始化工具栏,initRightKey方法初始化右键设置,等方法类成员如下:
(2)类Loading(实现登陆)类成员如下
(3)类runtime(实现时间同步)类成员如下
(4)类__inFunction(包含主函数)类成员如下
2、主要功能代码实现1登陆界面:classLoadingextendsJWindowimplementsRunnable{ThreaddluThread=null;privateJProgres__arprogress;publicLoading{setCursorCursor.getPredefinedCursorCursor.WAIT_CURSOR;//设置光标为等待状态JPaneldlu=newJPanelnewBorderLayout;URLurl=getClass.getResour__/i__ges/loading.jpg;ifurl!=null{dlu.addnewJButtonnewI__geIconurlBorderLayout.__NTER;}progress=newJProgres__ar1100;progress.setStringPaintedtrue;progress.setBorderPaintedtrue;progress.setBackgroundColor.white;progress.setForegroundColor.green;dlu.addprogressBorderLayout.SOUTH;setContentPanedlu;//设置窗口属性为登陆面板属性Dimensionscreen=getToolkit.getScreenSize;pack;//显示登陆界面setLocationscreen.width/4screen.height/4;//设置登陆界面始终在屏幕中间显示}publicvoidstart{//this.toFront;dluThread=newThreadthis;dluThread.start;}publicvoidrun{show;try{forinti=0;i100;i++{Thread.sleep100;progress.setValueprogress.getValue+1;progress.setString欢迎进入迷你编辑,请稍后......+i+%;}}catchEx__ptionex{ex.printStackTra__;}dispose;//关闭登陆界面}}
2.时间标签:classruntimeextendsJButtonimplementsRunnable{Threaddatetime=null;publicruntime{}publicvoidrun{for;;{Calendarnow=Calendar.getInstan__;intyear1=now.getCalendar.YEAR;intmonth1=now.getCalendar.MONTH;intday1=now.getCalendar.DAY_OF_MONTH;inthour1=now.getCalendar.HOUR;intminute1=now.getCalendar.MINUTE;intsec=now.getCalendar.SECOND;setTextyear1+年+month1+月+day1+日+hour1+:+minute1+:+sec;try{Thread.currentThread.sleep1000;}catchInterruptedEx__ptione{}}}}
(3)右键的实现voidinitRightKey{filepopup=newJPopupMenu;uundo=newJMenuItem撤消U;uundo.setMnemonicU;ccut=newJMenuItem剪切T;ccut.setMnemonicT;ccopy=newJMenuItem__C;ccopy.setMnemonicC;ppaste=newJMenuItem粘贴V;ppaste.setMnemonicV;ddelete=newJMenuItem删除D;ddelete.setMnemonicD;sselectall=newJMenuItem全选A;sselectall.setMnemonicA;filepopup.adduundo;filepopup.addSeparator;filepopup.addccut;filepopup.addccopy;filepopup.addppaste;filepopup.addddelete;filepopup.addSeparator;filepopup.addsselectall;uundo.addActionListeneraction;ccut.addActionListeneraction;ccopy.addActionListeneraction;ppaste.addActionListeneraction;ddelete.addActionListeneraction;sselectall.addActionListeneraction;text.addMouseListenernewMouseAdapter{publicvoidmousePressedMouseEventevent{checkForTriggerEventevent;}publicvoidmouseReleasedMouseEventevent{checkForTriggerEventevent;}publicvoidcheckForTriggerEventMouseEventevent{ifevent.isPopupTrigger{filepopup.showevent.getComponentevent.getXevent.getY;}}};}
(4)打开、保存、__、粘贴、撤销等功能__响应实现//__处理ActionListeneraction=newActionListener{publicvoidactionPerformedActionEvente{JMenuItemmi=JMenuIteme.getSour__;Stringid=mi.getText;ifid.equals新建{Datedate=newDate;text.setTextdate.toString;file=null;}elseifid.equals打开...{iffile!=nullfilechooser.setSelectedFilefile;//为用户选择文件提供了一种简单的机制intreturnVal=filechooser.showOpenDialogMiniText.this;ifreturnVal==JFileChooser.APPROVE_OPTION{file=filechooser.getSelectedFile;openFile;}}elseifid.equals保存...{iffile!=nullfilechooser.setSelectedFilefile;intreturnVal=filechooser.showS__eDialogMiniText.this;ifreturnVal==JFileChooser.APPROVE_OPTION{file=filechooser.getSelectedFile;s__eFile;JOptionPane.showMessageDialognull已保存;}}elseifid.equals另存为{iffile!=nullfilechooser.setSelectedFilefile;intreturnVal=filechooser.showS__eDialogMiniText.this;ifreturnVal==JFileChooser.APPROVE_OPTION{file=filechooser.getSelectedFile;s__eFile;JOptionPane.showMessageDialognull已保存;}}elseifid.equals打印{prt.printDialog;}elseifid.equals打印页面设置{try{prt.print;}catchEx__ptionew{JOptionPane.showMessageDialognull打印出错!错误JOptionPane.ERROR_MESSAGE;}}elseifid.equals退出{System.exit0;}elseifid.equals剪切||id.equals剪切T{text.cut;}elseifid.equals__||id.equals__C{text.copy;}elseifid.equals粘贴||id.equals粘贴V{text.paste;}elseifid.equals删除||id.equals删除D{text.repla__Selection;}elseifid.equals选择全部||id.equals全选A{text.selectAll;}elseifid.equals字体颜色...{color=JColorChooser.showDialogMiniText.this字体颜色设置color;text.setForegroundcolor;}elseifid.equals自动换行{}elseifid.equals撤销||id.equals撤消U{text.setText;text.selectAll;}elseifid.equals查找{Stringfind=查找;find=JOptionPane.showInputDialog查找:;}elseifid.equals时间{time.setFontnewFontTimesNewRo__nFont.PLAIN12;text.insertComponenttime;}elseifid.equals系统记事本{try{Stringcom__nd=notepad.exe;Pro__sschild=Runtime.getRuntime.execcom__nd;//从系统进程中调用记事本}catchIOEx__ptionex{}}elseifid.equals系统计算器{try{Stringcom__nd=calc.exe;Pro__sschild=Runtime.getRuntime.execcom__nd;//调用系统计算器}catchIOEx__ptionex{}}elseifid.equals关于{about.setSize250150;about.show;}}};
四、源程序publicclassNotepadextendsJFrame{//系统组件声明privateJMenuBarmenuBar=newJMenuBar;privateJEditorPanecontent=newJEditorPane;privateJScrollPanescroll=newJScrollPanecontent;privateJFileChooserfilechooser=newJFileChooser;privateBorderLayoutbord=newBorderLayout;privateJLabelstatu__ar=newJLabel;privateJPanelpane=newJPanel;privateFilefile=null;//定义文件菜单privateJMenufileMenu=newJMenu;privateJMenuItemnewMenuItem=newJMenuItem;privateJMenuItemope__enuItem=newJMenuItem;privateJMenuItems__eMenuItem=newJMenuItem;privateJMenuItems__eA__enuItem=newJMenuItem;privateJMenuItempageSetupMenuItem=newJMenuItem;privateJMenuItemprintMenuItem=newJMenuItem;privateJMenuItemexitMenuItem=newJMenuItem;//定义风格菜单privateJMenustyleMenu=newJMenu;privateButtonGroupstyleMenuGroup=newButtonGroup;privateJRadioButto__enuItemj__aStyleMenuItem=newJRadioButto__enuItem;privateJRadioButto__enuItemmetalStyleMenuItem=newJRadioButto__enuItem;privateJRadioButto__enuItemwindowsStyleMenuItem=newJRadioButto__enuItem;//定义帮助菜单privateJMenuItemaboutMenuItem=newJMenuItem;privateJMenuItemhelpTopicMenuItem=newJMenuItem;privateJMenuhelpMenu=newJMenu;//构造函数publicNotepad{initComponents;}privatevoidinitComponents{//添加子菜单项到文件菜单fileMenu.setText\u6587\u4ef6F;newMenuItem.setText 新建N Ctrl+N;ope__enuItem.setText 打开O... Ctrl+O;s__eMenuItem.setText 保存S Ctrl+S;s__eA__enuItem.setText 另存为A...;pageSetupMenuItem.setText 页面设置U...;printMenuItem.setText 打印P... Ctrl+P;exitMenuItem.setText 退出;fileMenu.addnewMenuItem;fileMenu.addope__enuItem;fileMenu.adds__eMenuItem;fileMenu.adds__eA__enuItem;fileMenu.addSeparator;fileMenu.addpageSetupMenuItem;fileMenu.addprintMenuItem;fileMenu.addSeparator;fileMenu.addexitMenuItem;//添加子菜单项到风格菜单styleMenu.setText风格S;j__aStyleMenuItem.setTextJ__a默认;metalStyleMenuItem.setTextMetal风格;windowsStyleMenuItem.setTextWindows风格;styleMenuGroup.addj__aStyleMenuItem;styleMenuGroup.addmetalStyleMenuItem;styleMenuGroup.addwindowsStyleMenuItem;styleMenu.addj__aStyleMenuItem;styleMenu.addmetalStyleMenuItem;styleMenu.addwindowsStyleMenuItem;//添加子菜单项到帮助菜单helpMenu.setText帮助H;helpTopicMenuItem.setText 帮助主题H;aboutMenuItem.setText 关于记事本A;helpMenu.addhelpTopicMenuItem;helpMenu.addSeparator;helpMenu.addaboutMenuItem;//定义文件菜单下的__监听newMenuItem.addActionListenernewnewMenuItem_actionAdapterthis;ope__enuItem.addActionListenernewope__enuItem_actionAdapterthis;s__eMenuItem.addActionListenernews__eMenuItem_actionAdapterthis;s__eA__enuItem.addActionListenernews__eA__enuItem_actionAdapterthis;pageSetupMenuItem.addActionListenernewpageSetupMenuItem_actionAdapterthis;printMenuItem.addActionListenernewprintMenuItem_actionAdapterthis;exitMenuItem.addActionListenernewexitMenuItem_actionAdapterthis;//定义风格菜单下的__监听j__aStyleMenuItem.addActionListenernewj__aStyleMenuItem_actionAdapterthis;metalStyleMenuItem.addActionListenernewmetalStyleMenuItem_actionAdapterthis;windowsStyleMenuItem.addActionListenernewwindowsStyleMenuItem_actionAdapterthis;//定义帮助菜单下的__监听helpTopicMenuItem.addActionListenernewhelpTopicMenuItem_actionAdapterthis;aboutMenuItem.addActionListenernewaboutMenuItem_actionAdapterthis;//填加菜单到菜单栏menuBar.addfileMenu;menuBar.addstyleMenu;menuBar.addhelpMenu;//对主窗口的一些设置this.setDefaultCloseOperationEXIT_ON_CLOSE;this.setTitle无标题-\u8bb0\u4e8b\u672c;this.setSize640480;setJMenuBarmenuBar;pane.setLayoutbord;pane.add__nterscroll;setContentPanepane;}//定义新建菜单项方法publicvoidnewMenuIte__ctionPerformedActionEventevt{file=null;if!.equalscontent.getText{O__ect[]options={ 是Y 否N 取消 };ints=JOptionPane.showOptionDialognull\u6587\u4ef6+getTitle+\u7684\u6587\u5b57\u5df2\u7ecf\u6539\u53d8\u3002\n\u60f3\u4fdd\u5b58\u6587\u4ef6\u5417\uff1f\u8bb0\u4e8b\u672cJOptionPane.DEFAULT_OPTIONJOptionPane.WARNING_MESSAGEnulloptionsoptions
[0];switchs{case0:intreturnVal=filechooser.showS__eDialogthis;ifreturnVal==JFileChooser.APPROVE_OPTION{file=filechooser.getSelectedFile;try{FileWriterfw=newFileWriterfile;fw.writecontent.getText;setTitlefilechooser.getSelectedFile.getName+-\u8bb0\u4e8b\u672c;fw.close;}catchEx__ptione{e.printStackTra__;}break;}case1:content.setText;setTitle无标题-\u8bb0\u4e8b\u672c;}}}//定义打开菜单项方法publicvoidope__enuIte__ctionPerformedActionEventevt{try{file=null;intreturnVal=filechooser.showOpenDialogthis;ifreturnVal==JFileChooser.APPROVE_OPTION{file=filechooser.getSelectedFile;FileReaderfr=newFileReaderfile;intlen=intfile.length;char[]buffer=newchar[len];fr.readbuffer0len;fr.close;content.setTextnewStringbuffer;}}catchEx__ptione{e.printStackTra__;}}//定义退出菜单项方法publicvoidexitMenuItem_actionPerformedActionEvente{if!.equalscontent.getText{O__ect[]options={ 是Y 否N 取消 };ints=JOptionPane.showOptionDialognull文件的文字已经改变\n想保存文件吗?\u8bb0\u4e8b\u672cJOptionPane.DEFAULT_OPTIONJOptionPane.WARNING_MESSAGEnulloptionsoptions
[0];switchs{case0:intreturnVal=filechooser.showS__eDialogthis;ifreturnVal==JFileChooser.APPROVE_OPTION{file=filechooser.getSelectedFile;try{FileWriterfw=newFileWriterfile;fw.writecontent.getText;setTitlefilechooser.getSelectedFile.getName+-\u8bb0\u4e8b\u672c;fw.close;}catchEx__ptionex{ex.printStackTra__;}break;}case1:System.exit0;}}else{System.exit0;}}//保存__publicvoids__eMenuIte__ctionPerformedActionEventevt{intreturnVal=filechooser.showS__eDialogthis;ifreturnVal==JFileChooser.APPROVE_OPTION{file=filechooser.getSelectedFile;try{FileWriterfw=newFileWriterfile;fw.writecontent.getText;setTitlefilechooser.getSelectedFile.getName+-\u8bb0\u4e8b\u672c;fw.close;}catchEx__ptione{e.printStackTra__;}}}//另存为__publicvoids__eA__enuIte__ctionPerformedActionEventevt{filechooser.setDialogTitle另存为...;intreturnVal=filechooser.showS__eDialogthis;ifreturnVal==JFileChooser.APPROVE_OPTION{file=filechooser.getSelectedFile;try{FileWriterfw=newFileWriterfile;fw.writecontent.getText;setTitlefilechooser.getSelectedFile.getName+-\u8bb0\u4e8b\u672c;fw.close;}catchEx__ptione{e.printStackTra__;}}}//页面设置__publicvoidpageSetupMenuIte__ctionPerformedActionEventevt{JOptionPane.showMessageDialognull此功能正在__中...;}//打印__publicvoidprintMenuIte__ctionPerformedActionEventevt{JOptionPane.showMessageDialognull打印中...;}//更新风格外观方法voidchangeLookFeelStringclassName{try{UI__nager.setLookAndFeelclassName;}catchEx__ptione{}SwingUtilities.updateComponentTreeUIthis;}//J__a风格__publicvoidj__aStyleMenuIte__ctionPerformedActionEventevt{}//Motif风格__publicvoidmetalStyleMenuIte__ctionPerformedActionEventevt{}//__C风格__publicvoidwindowsStyleMenuIte__ctionPerformedActionEventevt{}//帮助__publicvoidhelpTopicMenuIte__ctionPerformedActionEventevt{JOptionPane.showMessageDialognull\u9700\u__81\u5e2e\u52a9\u5417\uff1f;}//关于__publicvoidaboutMenuIte__ctionPerformedActionEventevt{}//主函数publicstaticvoid__inStringargs[]{Notepadnotepad=newNotepad;notepad.setVisibletrue;}}//定义新建__类classnewMenuItem_actionAdapterimplementsActionListener{Notepadadaptee;newMenuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.newMenuIte__ctionPerformedevt;}}//定义打开__类classope__enuItem_actionAdapterimplementsActionListener{Notepadadaptee;ope__enuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.ope__enuIte__ctionPerformedevt;}}//定义保存__类classs__eMenuItem_actionAdapterimplementsActionListener{Notepadadaptee;s__eMenuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.s__eMenuIte__ctionPerformedevt;}}//定义另存为__类classs__eA__enuItem_actionAdapterimplementsActionListener{Notepadadaptee;s__eA__enuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.s__eA__enuIte__ctionPerformedevt;}}//定义页面设置__类classpageSetupMenuItem_actionAdapterimplementsActionListener{Notepadadaptee;pageSetupMenuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.pageSetupMenuIte__ctionPerformedevt;}}//定义打印__类classprintMenuItem_actionAdapterimplementsActionListener{Notepadadaptee;printMenuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.printMenuIte__ctionPerformedevt;}}//定义J__a风格__类classj__aStyleMenuItem_actionAdapterimplementsActionListener{Notepadadaptee;j__aStyleMenuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.j__aStyleMenuIte__ctionPerformedevt;}}//定义J__a风格__类classmetalStyleMenuItem_actionAdapterimplementsActionListener{Notepadadaptee;metalStyleMenuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.metalStyleMenuIte__ctionPerformedevt;}}//定义J__a风格__类classwindowsStyleMenuItem_actionAdapterimplementsActionListener{Notepadadaptee;windowsStyleMenuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.windowsStyleMenuIte__ctionPerformedevt;}}//定义帮助主题__类classhelpTopicMenuItem_actionAdapterimplementsActionListener{Notepadadaptee;helpTopicMenuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.helpTopicMenuIte__ctionPerformedevt;}}//定义关于软件__类classaboutMenuItem_actionAdapterimplementsActionListener{Notepadadaptee;aboutMenuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.aboutMenuIte__ctionPerformedevt;}}//定义退出__类classexitMenuItem_actionAdapterimplementsActionListener{Notepadadaptee;exitMenuItem_actionAdapterNotepadadaptee{this.adaptee=adaptee;}publicvoidactionPerformedActionEventevt{adaptee.exitMenuItem_actionPerformedevt;}}
五、操作方法由于功能比较多,不能全部截图演示,所以取其有代表的几项主要功能演示,其他在实际程序运行中可逐步实现
(1).开始界面包括基本菜单栏,工具栏,动态时间按钮,而且本编辑框被设计为在屏幕中间显示
(2).菜单显示文件菜单包括新建、打开、保存、另存为、打印、打印页面设置、退出等菜单子项;编辑菜单包括__、剪切、粘贴、全选、撤销等菜单子项;还有格式、查看、工具、帮助等六项主菜单和工具栏七个常用工具
(3).打开功能的实现,出现选择文件对话框,包括打开和取消两个选择按钮,用户选择合适的文件后可以__打开按钮,在文本中显示文件内容
(4).进入编辑状态后,__右键选择全选菜单,或使用主菜中的选择全部子菜单项,则文本将会处于被全选状态
(5).若__字体颜色设置工具则会出现相应字体颜色选择框
(6).若选择部分文字,通过右键、工具栏或下拉菜单中的剪切或删除操作,会进行相应动作剪切后粘贴
(7).单击查看菜单中的查找子菜单,出现相应查找对话框,选择操作
(8).进行撤销操作
(9).若选择保存操作,则有相应保存选择对话框出现若想保存为word文档,则需把后缀名改为.doc形式随后出现保存信息提示框,若没有成功保存,则提示保存出错,若保存成功,则
(10).选择退出,则会关闭文本编辑器并退出界面
六、试验结果经过多次调试运行,发现很多不足
(1)刚开始启动程序时,等待时间比较长,于是考虑增加一个线程,设计登陆界面,更加友好界面代码改进,增加如下//登陆界面classLoadingextendsJWindowimplementsRunnable{ThreaddluThread=null;privateJProgres__arprogress;publicLoading{setCursorCursor.getPredefinedCursorCursor.WAIT_CURSOR;//设置光标为等待状态JPaneldlu=newJPanelnewBorderLayout;URLurl=getClass.getResour__/i__ges/loading.jpg;ifurl!=null{dlu.addnewJButtonnewI__geIconurlBorderLayout.__NTER;}progress=newJProgres__ar1100;progress.setStringPaintedtrue;progress.setBorderPaintedtrue;progress.setBackgroundColor.white;progress.setForegroundColor.green;dlu.addprogressBorderLayout.SOUTH;setContentPanedlu;//设置窗口属性为登陆面板属性Dimensionscreen=getToolkit.getScreenSize;pack;//显示登陆界面setLocationscreen.width/4screen.height/4;//设置登陆界面始终在屏幕中间显示}publicvoidstart{//this.toFront;dluThread=newThreadthis;dluThread.start;}publicvoidrun{show;try{forinti=0;i100;i++{Thread.sleep100;progress.setValueprogress.getValue+1;progress.setString欢迎进入迷你编辑,请稍后......+i+%;}}catchEx__ptionex{ex.printStackTra__;}dispose;//关闭登陆界面}}
(2)为了体现迷你编辑的特点,本人考虑在编辑状态中添加音乐,于是在主程序课设中添加一个音乐线程,代码如下classsoundextendsThread{ThreadmusicThread=null;AudioClipac;voidsound{}publicvoidstart{//this.toFront;musicThread=newThreadthis;musicThread.start;}publicvoidrun{try{URLurl2=getClass.getResour__/i__ges/爱无止境.mp3;ac=getAudioClipurl2town.mid;}catchEx__ptionex{ex.printStackTra__;}}}
七、设计体会通过这次设计,使我把平时掌握的j__a语言基本知识应用于实践中,在实际操作中加深对J__a语言的理解由于本程序需要用到大量的swing编程的知识,所以在编程之前先系统复习了课本有关知识,使我所学过的知识更加牢固了而在编程过程中又涉及到大量课本之外的知识,比如JTextPane可以用以图形方式表示的属性来标记的文本组件、JPopupMenu右键菜单、引用net中URL,代表一个统一资源定位符、控制打印的主要类等为此我查阅了大量书籍资料和有关手册,《j__a2核心技术》、《J__a编程思想》等等,其中JDK文档也给了我很大帮助如前所述,在实际编程中也发现了很多问题,如用了布局以后,发现按钮、标签、面板等组件虽然可以放在合适的位置,但针对每个组件的大小没法灵活设置在本编程中设置时间标签时,为了时间能在组件中间显示,把它设为了按钮,并放在整个布局的下面,通过查阅资料发现在实际编程中,有时候不用固定布局,自己计算设置各组件的位置,效果更好还有,在本编程中,对swing中的默认的进度条样式不太满意,希望能把进度条设定为3d效果,或花瓣形式,或嵌入在__面板中等,但通过查找发现,这些较流行的技术,在corej__a中很难实现,在JSP、AJAX中则可轻松设计课设之中也让我领悟到,编程前要先搭好构架,设计好清晰的层次图,画出流程图,代码要写出必要的注释等等的好处给我印象最深的就是,在程序中非常容易出小的毛病,而这些小毛病往往浪费大量的时间,让人烦恼至极比如,在主方法体中忘记定义一些变量,导致程序运行时程序也报出大量错,有时在鼠标随便定位处不小心按下一个字符,结果运行报错后出现意外错误反复检查也难以找出让人伤透脑筋还有时忘记保存等等……此后让我懂得写程序一定要仔细,要认真写清每一行代码经过此次课设,给我最大的__,就是通过自己的不懈努力,和同学老师的帮助,最终实现了在此之前看似很难做到的功能,有很大的成就感,让我对J__a编程增加了极大兴趣相信我不会停止对这门课程的学习,我会在未来的学习中不断完善,充实自己。