版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java课程设计报告 题 目: 文本编辑器 班 级: 学 号: 姓 名: 成 绩: 日期: 年 月 日目 录一、综合设计的目的与要求 3二、综合设计正文31.系统分析31.1系统开发背景、开发范围、建设目标与必要性开发31.2需求分析32.系统设计32.1功能设计32.2系统运行环境与开发工具43 .系统实施43.1源程序43.2. 系统测试及部分截图12三、综合设计总结或结论13四、参考文献13文本编辑器一、综合设计的目的与要求要求在学生能够较熟练使用java程序设计语言进行软件代码的编写,同时还要具备较好的项目分析的能力,加深对相关课程基本内容的理解。同时,在程序设计方法以及上机操作等基本
2、技能和科学作风方面受到比较系统的练习。二、综合设计正文1 系统分析1.1系统开发背景、开发范围、建设目标与必要性随着计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。当然对文本编辑操作仍然占据着重要地位,记事本是简单便捷的文本编辑器,可实现对文本编辑操作的基本功能。1.2需求分析程序设计主要分为两大部分:简单gui设计和程序功能设计。通过gui设计实现图形用户界面,提供图形菜单,方便用户操作。使用java语言编写一个能够对输入文字进行操作,具有合理的界面,能够在界面中实现右键快捷方式,对文档内容进行编辑操作,并且能够顺利退出的程序。通过设计和
3、实现一个具有基本功能的文本编辑器,提高我们对java语言设计的掌握能力,理论联系实际,进一步提高软件开发技术,从而培养我们分析、解决问题的能力。2 系统设计2.1功能设计根据系统自带的文档编辑器的特征设计,包括如下的功能模块:一、 整体结构框架包括:菜单栏和文档编辑区二、 每个框架分别包含不同的子框架,各个模块的具体框架:1.菜单栏:文件、编辑、工具、帮助2.菜单栏中各个子菜单功能文件:新建、打开、保存、另存为、退出编辑:剪切、复制、粘贴 工具: 查找、替换 3.子菜单功能的实现主要的几个功能介绍1) 打开与另存为:两个窗体调用系统函数直接利用,注意格式的选择2) 查找:查找内容、查找、查找下
4、一个4文本编辑区监视文本内容是否改变、监听光标所在位置 2.2系统运行环境与开发工具开发环境与工具:jdk2.0 eclipse sdk3 系统实施3.1源程序import javax.swing.*;import java.awt.*;import java.io.*;import java.awt.event.*;public class txteditor extends jframe implements actionlistenerstring file_name;string file_dir;string tempstring;/上次保存后的文件名和地址string filena
5、me = ; jpanel x=new jpanel(); jtextarea wen=new jtextarea(20,50); jmenuitem ziti=new jmenuitem(字体); jmenuitem a=new jmenuitem(普通); /定义菜单项 jmenuitem xin=new jmenuitem(新建); jmenuitem open=new jmenuitem(打开); jmenuitem save=new jmenuitem(保存 ); jmenuitem lsave=new jmenuitem(另存为); jmenuitem tui=new jmenui
6、tem(退出); jmenuitem cut=new jmenuitem(剪切 ); jmenuitem copy=new jmenuitem(复制); jmenuitem cast=new jmenuitem(粘贴); jmenuitem delete=new jmenuitem(删除 ); jmenuitem b=new jmenuitem(粗体); jmenuitem c=new jmenuitem(斜体);txteditor() super (文本编辑器);/对话框 setbounds(250,100,700,450); setdefaultcloseoperation(do_noth
7、ing_on_close); addwindowlistener(new windowadapter() public void windowclosing(windowevent e) int option= joptionpane.showconfirmdialog( txteditor.this, 确定要退出吗. , 系统和你对话 ,joptionpane.yes_no_option); if(option=joptionpane.yes_option) if(e.getwindow() = txteditor.this) system.exit(0); else return; );
8、/热键设置 xin.setaccelerator(keystroke.getkeystroke(keyevent.vk_n,actionevent.ctrl_mask); open.setaccelerator(keystroke.getkeystroke(keyevent.vk_o,actionevent.ctrl_mask); save.setaccelerator(keystroke.getkeystroke(keyevent.vk_s,actionevent.ctrl_mask); cut.setaccelerator(keystroke.getkeystroke(keyevent.v
9、k_x,actionevent.ctrl_mask); copy.setaccelerator(keystroke.getkeystroke(keyevent.vk_c,actionevent.ctrl_mask); cast.setaccelerator(keystroke.getkeystroke(keyevent.vk_v,actionevent.ctrl_mask); /定义面板 / x.add( add(new jscrollpane (wen);/);/滚动条 wen.setfont(new font(楷体 , font.plain ,20); / wen.setbackgroun
10、d(color.blue); / add(x); /菜单栏的创建 jmenubar cai=new jmenubar(); this.setjmenubar(cai); cai.setopaque(true); jmenu jian=new jmenu(文件); jian.add(xin); jian.add(open); jian.add(save); jian.add(lsave); jian.addseparator( ); jian.add(tui); cai.add(jian); jmenu bian= new jmenu(编辑 ); bian.add(cut); bian.add(
11、copy); bian.add(cast); bian.add(delete); cai.add(bian); jmenu geshi = new jmenu (格式); jmenu optionsmenu=new jmenu(字体); geshi.add(optionsmenu); optionsmenu.add(a); optionsmenu.add(b); optionsmenu.add(c); cai.add(geshi); /增加监听器 xin.addactionlistener(this); open.addactionlistener(this); save.addactionl
12、istener(this); lsave.addactionlistener(this); tui.addactionlistener(this); cut.addactionlistener(this); copy.addactionlistener(this); cast.addactionlistener(this); delete.addactionlistener(this); ziti.addactionlistener(this); a.addactionlistener(this); b.addactionlistener(this); c.addactionlistener(
13、this);/ 文本框锁定 /this.setresizable(false); /重写方法public void actionperformed(actionevent e)string actioncommand=e.getactioncommand();if(e.getsource()instanceof jmenu); if(e.getsource()=xin)newfile(); else if(e.getsource()=open) openfile(); else if(e.getsource()=save) savefile(); else if(e.getsource()=l
14、save) lsavefile(); else if(e.getsource()=cut) cutfile(); else if(e.getsource()=copy) copyfile(); else if(e.getsource()=cast) castfile(); else if(e.getsource()=delete) deletefile(); else if(e.getsource()=a) afile(); else if(e.getsource()=b) bfile(); else if(e.getsource()=c) cfile(); else if(退出.equals
15、(actioncommand) system.exit(0); / 方法定义 public void newfile() savefile(); wen.settext(null); filename = ; /打开 public void openfile() string filename = null; filedialog df = new filedialog(this,打开文件,filedialog.load); df.setvisible(true); /建立新文件 file f = new file( df.getdirectory()+df.getfile() ); /得到文
16、件名 filename = df.getdirectory()+df.getfile(); /用此文件的长度建立一个字符数组 (特别标注) char ch = new char (int)f.length(); /异常处理 try /读出数据,并存入字符数组ch中 bufferedreader bw = new bufferedreader( new filereader(f) ); bw.read(ch); bw.close(); catch( filenotfoundexception fe ) system.out.println(file not found); system.exit
17、(0); catch( ioexception ie) system.out.println(io error); system.exit(0); string s =new string (ch); wen.settext(s); /保存 public void savefile() if( filename.equals() ) filedialog df = new filedialog(this,保存文件,filedialog.save); df.addwindowlistener( new windowadapter() public void windowclosing(windo
18、wevent ee) system.exit(0); ); df.setvisible(true); string s = wen.gettext(); try file f = new file( df.getdirectory()+df.getfile(); filename = df.getdirectory()+df.getfile(); bufferedwriter bw = new bufferedwriter( new filewriter (f); bw.write(s , 0 , s.length(); bw.close(); catch(filenotfoundexcept
19、ion fe_) system.out.println(file not found); system.exit(0); catch( ioexception ie_) system.out.println( io error); system.exit(0); /如果文件已经保存过 else string s = wen.gettext(); try file f = new file( filename ); bufferedwriter bw = new bufferedwriter( new filewriter (f); bw.write(s , 0 , s.length(); bw
20、.close(); catch(filenotfoundexception fe_) system.out.println(file not found); system.exit(0); catch( ioexception ie_) system.out.println( io error); system.exit(0); /另存为 public void lsavefile() filedialog df = new filedialog(this,另存为,filedialog.save); df.addwindowlistener( new windowadapter() publi
21、c void windowclosing(windowevent ee) system.exit(0); ); df.setvisible(true); string s = wen.gettext(); try file f = new file( df.getdirectory()+df.getfile(); bufferedwriter bw = new bufferedwriter( new filewriter (f); bw.write(s , 0 , s.length(); bw.close(); catch(filenotfoundexception fe_) system.o
22、ut.println(file not found); system.exit(0); catch( ioexception ie_) system.out.println( io error); system.exit(0); /剪切 public void cutfile() tempstring = wen.getselectedtext(); stringbuffer tmp = new stringbuffer ( wen.gettext(); int start = wen.getselectionstart(); int len = wen.getselectedtext().l
23、ength(); tmp.delete( start , start+len); wen.settext(tmp.tostring(); /复制 public void copyfile() tempstring = wen.getselectedtext(); /粘贴 public void castfile() stringbuffer tmp = new stringbuffer ( wen.gettext(); /得到要粘贴的位置 int start = wen.getselectionstart(); tmp.insert(start , tempstring); /用新文本设置原文本 wen.settext(tmp.tostring(); /删除 public void deletefile() stringbuffer tmp = new stringbuffer ( wen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于氧化铋的制备及应用的研究进展
- 基于职业发展的员工素质模型构建研究分析 人力资源管理专业
- 项目库存材料盘点管理办法
- 2026年中小学清明节主题活动策划案
- 武汉地区普通高校保健体育课的现状剖析与发展策略研究
- 武广客运专线路基加固工程施工进度风险剖析与应对策略研究
- 正规金融赋能农民专业合作社融资:路径、困境与突破
- 正交完备U系统:理论剖析与多领域应用探索
- 2026年烟台初中历年考试试题及答案
- 欧盟版权产品平行进口法律问题探究:基于利益平衡与市场秩序视角
- GB/T 46079-2025聚合物增材制造原材料激光粉末床熔融用材料的鉴定
- (正式版)DB32∕T 5156-2025 《零碳园区建设指南》
- 化工工艺设计培训
- 物业客诉培训课件
- 应急管理通论(第二版)课件 第9章 应急沟通职能
- 要素式民事起诉状(侵害著作权及邻接权纠纷)
- 学堂在线 唐宋词鉴赏 章节测试答案
- 皮肤外科进修汇报
- 公司厂房租赁管理制度
- 防汛应急服务合同范本
- T/CTRA 01-2020废轮胎/橡胶再生油
评论
0/150
提交评论