版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 虚拟的Jaava编辑辑器设计报报告一、需求分分析此次课程设设计名称为为JAVAA编辑器。需要设设计一个图形界面面的文本编编辑器,能编辑辑Javaa语言源程程序,界面面和功能类类似Ediitpluus。演示程序为为计算机和和用户的对话形式执行,即在在计算机的终端显示示图形界面面的文档编辑辑器,然后用户户就可以实现现编辑,保保存等像记记事本一样的功能能。(1)打开开以有文件件,保存编编辑文件,退退出编辑器并提醒保存存;(2)查找找编辑区中的的字符串,用用已知字符符串替换查找的字字符串;(3)显示示文件的存存取路径;(4)剪切切,复制,粘贴,删除等;(5)改变变文本区字体体的颜色,字体大小和和形状
2、的功能能;(6)关键键字显示蓝蓝色、类库库类名显示示红色。二. 设计计设计思想Java编编辑器是用用来编写jjava程程序的源代代码。Jaava程序序编辑器是是:图形界界面、线程程、流与文文件等技术术的综合应应用。图形界面的的实现:就就选择了sswingg来完成实实现,在选选择组件上上,文本编编辑区就选选用了JTTextPanne作为主主要的部件件。由于Javva的特性性,可能用用任何一个个编辑器来来编辑,于于是就将WWindoows中的的记事本作作为模仿对对象,根据据实现情况况删减了其其中的一些些功能,如如自动换行行,设置字字体,打印印等功能。在设计类类的时候,考考虑到简单单明了,一一个主类
3、,一个默认认属性myyfr类,染色类类SynttaxHiighliighteer作为程程序的整体体框架,所所有的对象象和方法都都是在默认认属性类和和染色类中中创建和实实现的,以以及为各组组件注册事事件监听程程序也是在在默认属性性类染色类类中实现的的。本程序序主类完成成对象的实实例化及显显示。功能设计本程序涉及及到了对图图形用户界界面的设计计与实现和和菜单的设设计与实现现。用户可可以通过此此编辑器对对javaa文件进行行文字的复复制、剪切切、粘贴、删除、查查找、替换换、时间的的插入、设设置字体颜颜色和关键键字、类库库名着色等等。本程序主要要有以下33个模块组组成:(1)主体体模块由窗口、功功能菜
4、单、文本框组组成。为用用户选择编编辑的功能能提供了简简单、方便便的界面。Javaa的窗口由由JFramme类生成成,我们可可以在创建建的空白窗窗口上添加加组件。菜菜单是图形形用户界面面的重要组组成部分,是是由菜单条条(MennuBarr)、菜单单(Mennu)、菜菜单项(MMenuIItem)和和复选菜单单项(Chheckbbox MMenuIItem)等等对象组成成。(2)功能能模块有文件的新新建、打开开、保存、另存为和和退出,文文字的复制制、剪切、粘贴、删删除、查找找、替换、以及时间间的插入,为为用户提供供了javva编辑器器的基础功功能。 (3)染色色模块关键字显示示蓝色,类类库名显示示
5、红色。实实现高亮子子的核心方方法StyleedDoccumennt.seetChaaractterAtttribbutess(intt offfset, intt lenngth, AtttribuuteSeet s, boooleann repplacee)详细设计本设计主要要是模仿wwindoows记事事本界面,主主要的难点点是关键字字染色算法法和查找替替换算法。其他的部部分相对简简单,主要要就是一些些容器组件件的组合,布布局的设置置。主要的的功能都在在myfrr类中实现现的。Java中中提供的多多行文本编编辑器有: JTeextCoomponnent, JTeextArrea, JTex
6、xtPanne, JJEdittorPaane等, 都可以以使用但是是因为语法法着色中文文本要使用用多种风格格的样式, 所以这这些文本编编辑器的ddocumment要要使用SttyleddDocuumentt. JTTextAArea使使用的是PPlainnDocuumentt, 此ddocumment不不能进行多多种格式的的着色.JJTexttPanee, JEEditoorPanne使用的的是StyyledDDocumment, 默认就就可以使用用.为了实现语语法着色, 可以继继承自DeefaulltStyyledDDocumment, 设置其其为这些文文本编辑器器的doccumett,
7、或者者也可以直直接使用JJTexttPanee, JEEditoorPanne来做. 为了方方便, 这这里就直接接使用JTTextPPane了了(1)主类类 cllass ok 实例化初初始化窗口口 (22)主窗口口体类 cclasss myffr 字体体类 cllass MyFoont (33)染色类类classs SyyntaxxHighhlighhter (4)鼠鼠标右键弹弹出菜单类类classs hhandllemouuse (5)帮帮助主题类类classs myyhelpp(6)关闭闭窗口XXXX类cllass xxx(7)关闭闭帮助主题题窗口类cclasss xxxxhelpp三.
8、 调试试及测试 1. 调试过过程中遇到到的主要问问题及解决决方法 开始把染染色类写在在myfrr中,结果果出现继承承错误,只只好把染色色类写在mmyfr之之外,通过过引用实现现类与类联联系。在开开始设置字字体颜色是是出现问题题,关键字字可着色,不不能设置字字体颜色,最最后发现时时没有监听听器的位置置出现了问问题! 2. 对设计计和编码的的回顾讨论论和分析 在本设设计中没有有用数据库库,在直接接用哈希表表定义,所所以只能简简单定义几几个常用的的关键字、类库名,能能说明功能能实现就可可以,这也也是可以该该进的地方方。设计的的功能有限限,只能实实现简单的的文本编辑辑,没有编编译,运行行等等功能能,这
9、也是是能力有限限。 3.测试数据据集 (11)主体模模块定义一个mmyfr类类对象,完完成主类的的实例化显显示。(2)功能能模块(A)文件件(新建、打开、保保存、另存存为、退出出)功能图如下下:(B)编辑辑(复制、剪切、粘粘贴、删除除、查找、查找下一一个、替换换、替换下下一个、全全选、日期期/时间)功能图如下下:(C)格式式(字体、字体颜色色)功能图如下下:(D)格式式风格(状状态栏)功能图如下下:(E)帮助助(帮助主主题、关于于)功能图如下下:(F)关键键字显示蓝蓝色、类库库类名显示示红色功能图如下下:四、经验和和体会。通过此次成成功的实现现了Javva文本编编辑器的设设计与编写写,我进一一
10、步巩固、加深了对对专业课程程JAVVA语言教教程的基基础理论知知识的理解解,使我熟熟练的掌握握了JAVVA语言的的输入输出出流、数据据库连接的的使用,灵灵活运用各各种类库。此次利用用所学知识识,开发小小型应用系系统我掌握握了如何运运用JAVVA语言编编写调试应应用系统程程序,并且且训练了我我独立开发发应用系统统,进行数数据处理的的综合能力力。同时,对对于给定的的设计题目目,如何对对其进行分分析,理清清思路,并并给出相应应的数学模模型,也是是一项很好好的考验。通过对这个个课题的学学习,我发发现Javva语言作作为一种新新兴的编辑辑语言,优优势很明显显,整个程程序的结构构很清晰,让让人一目了了然。
11、而且且,程序的的编辑、修修改、移植植性也很强强,可以通通过对功能能模块的添添加,增加加程序的实实用性,例例如查找、替换、打打印等等,这这些事今后后可以进一一步研究发发展的方向向。通过对这个个课题的训训练,使我我基本掌握握了Javva编程的的基础知识识,主体模模块与功能能模块的结结合技巧、方法,提提高了我的的自学能力力,也锻炼炼了我分析析问题、解解决问题的的能力!此次课程设设计给我印印象最深的的就是,在在程序中非非常容易出出小的毛病病,而这些些小毛病往往往浪费大大量的时间间而不得其其解,让人人烦恼至极极。比如,在在主方法体体中忘记定定义一些变变量,导致致程序运行行时程序也也报出大量量错,有时时在
12、鼠标随随便定位处处不小心按按下一个字字符,结果果运行报错错后出现意意外错误,有时忘记记保存等等等此后让让我懂得写写程序一定定要仔细,要要认真写清清每一行代代码。附录:主要要源程序imporrt jaava.aawt.*;imporrt jaava.aawt.eeventt.*;imporrt jaava.aawt.CColorr;imporrt jaava.iio.*;imporrt jaava.uutil.*;imporrt jaava.uutil.HashhSet;imporrt jaava.uutil.Set;imporrt jaava.aawt.ddatattranssfer.*;im
13、porrt jaava.aawt.eeventt.*;imporrt jaava.ttext.*;imporrt jaavax.swinng.*;imporrt jaavax.swinng.evvent.*;imporrt jaavax.swinng.teext.CCarett;imporrt jaavax.swinng.JFFramee;imporrt jaavax.swinng.JTTextPPane;imporrt jaavax.swinng.SwwingUUtiliitiess;imporrt jaavax.swinng.evvent.DocuumenttEvennt;imporrt
14、jaavax.swinng.evvent.DocuumenttListtenerr;imporrt jaavax.swinng.teext.BBadLoocatiionExxcepttion;imporrt jaavax.swinng.teext.DDocumment;imporrt jaavax.swinng.teext.SStylee;imporrt jaavax.swinng.teext.SStyleeConsstantts;imporrt jaavax.swinng.teext.SStyleedDoccumennt;imporrt jaavax.swinng.unndo.*;publi
15、ic cllass okpubliic sttaticc voiid maain(SStrinng argss)myfr fr=nnew mmyfr (我的的javaa编辑器);fr.seetSizze(6000,4000);/myyfr主窗窗体类/classs myffr exxtendds JFFramee impplemeents ActiionLiistenner Strinng sttr,sttrnexxt,paath,ffnamee; /部分变量量的声明JPaneel maainpaane; JFileeChoooser chooose = neww JFiileChhooseer
16、(); /文文件对话框框Dialoog fiind,rreplaace; /fiind为查查找对话框框,repplacee对话框JTexttFielld fiindtxxt,reepltxxt; /finnd为查找找对话框的的输入文本本区,reeplacce对话框框的输入文文本区Font newffont;JButtton ffindeenterr,repplb,bbut; /fiind为查查找对话框框,repplacee对话框的的确定按钮钮JLabeel sttate=new JLabbel(javaa编辑器-未命名名文档); /状态栏JTexttPanee txtt1; /主输入入文本区F
17、ile newffiless;JPopuupMennu poopm; /弹出出菜单声明明JMenuu m1,m2,mm3,m44,m5,m6; /各菜菜单项JMenuuItemm m611,m622,m266,m2771,m334,m551,m552,m553,m554,p_copyy,p_ccut,pp_passte,pp_dell,fonnt;int sstarttp,enndp,nnextttemp,newsstarttp,neewenddp; /查找替替换时所用用的临时变变量JToollBar toollbar = neew JTToolBBar(); /工具条 privaate SS
18、et kkeywoords;privaate SSet cclassswordds;privaate SStylee keyyworddStylle;privaate SStylee claasswoordSttyle;privaate SStylee norrmalSStylee;myfr(Striing ssss) /构造函函数开始superr(ssss);JMenuuBar mb=nnew JJMenuuBar();fnamee=nulll; /初始文文件名为空空 findeenterr=neww JBuuttonn(确定定);findeenterr.adddActiionLiisten
19、ner(tthis); /声明对话话框中上确确定按钮,并并注册事件件replbb=neww JBuuttonn(确定定);replbb.adddActiionLiistenner(tthis);mainppane=(JPaanel)thiss.gettConttentPPane(); mainppane.setLLayouut(neew BoorderrLayoout(); txt1=new JTexxtPanne();txt1.getDDocumment().adddDoccumenntLissteneer(neew SyyntaxxHighhlighhter(txt11);txt1.add
20、MMouseeListtenerr(neww hanndlemmousee(thiis);/注册册鼠标右击击事件txt1.setFFont(new Fontt(宋体体,Foont.PPLAINN,18);mainppane.add(txt11, BoorderrLayoout.CCENTEER); mainppane.add(Norrth,toollbar); mainppane.add(Souuth,statte);JScroollPaane ssll = neww JSccrolllPanee(); /创建建滚动条mainppane.add(Cennter, slll); ;sll.gge
21、tViiewpoort().addd(txtt1); /将滚滚动条装入入文本区popm=new JPoppupMeenu(); /POOPMeuun 开始始p_coppy=neew JMMenuIItem(复制 );p_coppy.adddActtionLListeener(thiss);KeySttrokee keyycopyyp=KeeyStrroke.getKKeySttrokee(KeyyEvennt.VKK_C,EEventt.CTRRL_MAASK); p_coppy.seetAcccelerratorr(keyycopyyp); p_cutt=neww JMeenuIttem(剪
22、切 );p_cutt.adddActiionLiistenner(tthis);KeySttrokee keyycutpp=KeyyStrooke.ggetKeeyStrroke(KeyEEventt.VK_X,Evvent.CTRLL_MASSK); p_cutt.settAcceeleraator(keyccutp); p_passte=nnew JJMenuuItemm(粘贴贴 );p_passte.aaddAcctionnListtenerr(thiis);KeySttrokee keyypp=KKeySttrokee.gettKeySStrokke(KeeyEveent.VVK_V,
23、Evennt.CTTRL_MMASK); p_passte.ssetAccceleeratoor(keeypp); p_dell=neww JMeenuIttem(删除 );p_dell.adddActiionLiistenner(tthis);KeySttrokee keyydelpp=KeyyStrooke.ggetKeeyStrroke(KeyEEventt.VK_DELEETE,00); p_dell.settAcceeleraator(keyddelp); popm.add(p_coopy);popm.add(p_cuut);popm.add(p_paaste);popm.add(p
24、_deel);txt1.add(popmm); /PPOPMeenu 结结束m1=neew JMMenu(文件(F);m1.seetMneemoniic(FF); /定义义快捷方式式JMenuuItemm m100=neww JMeenuIttem(新建 );m10.aaddAcctionnListtenerr(thiis); /注册册事件监听听器KeySttrokee keyynew=KeySStrokke.geetKeyyStrooke(KKeyEvvent.VK_NN,Eveent.CCTRL_MASKK); /定义快快捷键m10.ssetAccceleeratoor(keeyneww)
25、; JMenuuItemm m111=neww JMeenuIttem(打开 );m11.aaddAcctionnListtenerr(thiis);KeySttrokee keyyopenn=KeyyStrooke.ggetKeeyStrroke(KeyEEventt.VK_O,Evvent.CTRLL_MASSK); m11.ssetAccceleeratoor(keeyopeen); JMenuuItemm m122=neww JMeenuIttem(保存 );m12.aaddAcctionnListtenerr(thiis);KeySttrokee keyysavee=KeyyStro
26、oke.ggetKeeyStrroke(KeyEEventt.VK_S,Evvent.CTRLL_MASSK); m12.ssetAccceleeratoor(keeysavve); JMenuuItemm m133=neww JMeenuIttem(另保存为为 );m13.aaddAcctionnListtenerr(thiis);JMenuuItemm m144=neww JMeenuIttem(退出 );m14.aaddAcctionnListtenerr(thiis);KeySttrokee keyyexitt=KeyyStrooke.ggetKeeyStrroke(KeyEEvent
27、t.VK_F4,EEventt.ALTT_MASSK); m14.ssetAccceleeratoor(keeyexiit); /m2=neew JMMenu(编辑(E);m2.seetMneemoniic(EE);JMenuuItemm m211=neww JMeenuIttem(复制 );m21.aaddAcctionnListtenerr(thiis);KeySttrokee keyycopyy=KeyyStrooke.ggetKeeyStrroke(KeyEEventt.VK_C,Evvent.CTRLL_MASSK); m21.ssetAccceleeratoor(keeycoppy
28、); JMenuuItemm m222=neww JMeenuIttem(剪切 );m22.aaddAcctionnListtenerr(thiis);KeySttrokee keyycut=KeySStrokke.geetKeyyStrooke(KKeyEvvent.VK_XX,Eveent.CCTRL_MASKK); m22.ssetAccceleeratoor(keeycutt); JMenuuItemm m233=neww JMeenuIttem(粘贴 );m23.aaddAcctionnListtenerr(thiis);KeySttrokee keyyp=KeeyStrroke.g
29、etKKeySttrokee(KeyyEvennt.VKK_V,EEventt.CTRRL_MAASK); m23.ssetAccceleeratoor(keeyp); JMenuuItemm m244=neww JMeenuIttem(删除 );m24.aaddAcctionnListtenerr(thiis);KeySttrokee keyydel=KeySStrokke.geetKeyyStrooke(KKeyEvvent.VK_DDELETTE,0); m24.ssetAccceleeratoor(keeydell); JMenuuItemm m255=neww JMeenuIttem
30、(查找 );m25.aaddAcctionnListtenerr(thiis);KeySttrokee keyyfindd=KeyyStrooke.ggetKeeyStrroke(KeyEEventt.VK_F,Evvent.CTRLL_MASSK); m25.ssetAccceleeratoor(keeyfinnd); m26=nnew JJMenuuItemm(查找找下一个 );m26.aaddAcctionnListtenerr(thiis);KeySttrokee keyyfn=KKeySttrokee.gettKeySStrokke(KeeyEveent.VVK_F33,0); m2
31、6.ssetAccceleeratoor(keeyfn); m26.ssetEnnableed(faalse);JMenuuItemm m277=neww JMeenuIttem(替换 );m27.aaddAcctionnListtenerr(thiis);KeySttrokee keyyrepll=KeyyStrooke.ggetKeeyStrroke(KeyEEventt.VK_H,Evvent.CTRLL_MASSK); m27.ssetAccceleeratoor(keeyreppl); m271=new JMennuIteem(替替换下一个个);m271.setEEnablled(f
32、falsee);m271.addAActioonLissteneer(thhis);KeySttrokee keyyrepnn=KeyyStrooke.ggetKeeyStrroke(KeyEEventt.VK_F6,00); m271.setAAccellerattor(kkeyreepn); JMenuuItemm m288=neww JMeenuIttem(全选 );m28.aaddAcctionnListtenerr(thiis);KeySttrokee keyyall=KeySStrokke.geetKeyyStrooke(KKeyEvvent.VK_AA,Eveent.CCTRL_
33、MASKK); m28.ssetAccceleeratoor(keeyalll); JMenuuItemm m299=neww JMeenuIttem(日期/时时间 );m29.aaddAcctionnListtenerr(thiis);/m3=neew JMMenu(格式(O);m3.seetMneemoniic(OO);font=new JMennuIteem(字字体F);font.addAActioonLissteneer(thhis);JMenuuItemm m333=neww JMeenuIttem(字体颜色色 );m33.aaddAcctionnListtenerr(thiis);
34、/m5=neew JMMenu(视图风风格(V);m5.seetMneemoniic(VV);m54=nnew JJMenuuItemm(状态态栏 );m54.aaddAcctionnListtenerr(thiis);/m6=neew JMMenu(帮助(H);m6.seetMneemoniic(HH); m61=nnew JJMenuuItemm(帮助助主题 );m61.aaddAcctionnListtenerr(thiis);m62=nnew JJMenuuItemm(关于于 );m62.aaddAcctionnListtenerr(thiis);/添加各各项m1.addd(m110)
35、; m1.aadd(mm11); m1.add(m12); m11.addd(m133); mm1.adddSepparattor(); m11.addd(m144);m33.addd(fonnt);m2.addd(m221); m2.aadd(mm22); m2.add(m23); m22.addd(m244); mm2.adddSepparattor(); m22.addd(m255);m2.addd(m226); m2.aadd(mm27); m2.add(m2711); mm2.adddSepparattor(); m22.addd(m288);m2.addd(m229); m3.aa
36、dd(mm33); m5.add(m54); m66.addd(m611); m6.adddSepparattor(); m66.addd(m622); mmb.addd(m11); mmb.addd(m22); mmb.addd(m33); mb.addd(m55); mmb.addd(m66); tthis.setJJMenuuBar(mb); /设设置菜单栏栏setViisiblle(trrue);pack();show();this.addWWindoowLissteneer(neew xxxx(thhis);/构构造函数结结束/事事件处理/publiic vooid aactioon
37、Perrformmed(AActioonEveent pp)if(p.getAActioonCommmandd()=新建 ) /响应菜菜单及工具具栏事件 fnamee=nulll; /置文件件名为空,便便于判断文文件是否保保存过txt1.setTText();statee.settTextt( 我我的javva编辑器器-未命命名文档);if(p.getAActioonCommmandd()=打开 )try if(thhis.cchoosse.APPPROVVE_OPPTIONN=thhis.cchoosse.shhowOppenDiialogg(thiis) path=thiss.chooos
38、e.getSSelecctedFFile().geetPatth(); fnamee=thiis.chhoosee.gettSeleecteddFilee().ggetNaame();File filee=neww Fille(paath);int fflenggth=(int)filee.lenngth(); FileRReadeer fRReadeer=neew FiileReeaderr(fille); char daata=nnew ccharflenngth; fReadder.rread(dataa,0,fflenggth); txt1.setTText(new Striing(d
39、data); statee.settTextt( 我我的javva编辑器器-+pathh+ 共共+fllengtth+字字节);/状态态栏统计文文件字节数数txt1.setCCarettPosiitionn(0);catchh(IOEExcepptionn e)if(p.getAActioonCommmandd()=保存 )if(fnname=nulll) /如果文文件名为空空,说明文文件未被创创建,弹出出另存为对对话框 othhersaave(); try File saveefilee=neww Fille(paath);saveffile.creaateNeewFille(); File
40、WWriteer fww=neww FilleWriiter(saveefilee); fw.wrrite(txt11.gettTextt(); fw.cllose(); catchh(IOEExcepptionn e)if(p.getAActioonCommmandd()=另保存存为 )otheersavve();if(p.getAActioonCommmandd()=退出 )exitt();/编辑/if(p.getAActioonCommmandd()=复制 ) y(); if(p.getAActioonCommmandd()=剪切 ) txtt1.cuut(); if(p.getAAct
41、ioonCommmandd()=粘贴 ) txtt1.paaste(); if(p.getAActioonCommmandd()=删除 ) txt1.repllaceSSelecctionn();/if(p.getAActioonCommmandd()=查找 ) / 创建建查找对话话框;findd=neww Diaalog(thiss,查找找);JPaneel p11=neww JPaanel();JPaneel p22=neww JPaanel();findttxt=nnew JJTexttFielld(7);p1.addd(neew JLLabell(输入入要查找字字符:);p1.addd
42、(fiindtxxt);p2.addd(fiindennter);find.add(Cennter,p1);find.add(Souuth,p2);find.setSSize(200,200);find.showw();if(p.getSSourcce()=finndentter) /点点击查找对对话框的确确定按钮后后的事件处处理if(fiindtxxt.geetTexxt().equaals() findd.dissposee();else if(!finddtxt.getTText().eqqualss() finnd.diisposse();str=ttxt1.getTText();st
43、arttp=sttr.inndexOOf(fiindtxxt.geetTexxt();endp=starrtp+ffindttxt.ggetTeext().lenngth();txt1.seleect(sstarttp,enndp);m26.ssetEnnableed(trrue);newenndp=eendp;/获取这次次查找的终终点notfiindmeethodd();/if(p.getAActioonCommmandd()=查找下下一个 )nextttemp=neweendp; /获取取上次查找找的终点做做为未查找找字符串的的起点Strinng sttralll=txtt1.geetTe
44、xxt();txt1.seleect(nnextttemp,straall.llengtth(); /选选中所有未未查找的字字符串strneext=ttxt1.getSSelecctedTText();newsttartpp=strrnextt.inddexOff(finndtxtt.gettTextt()+nextttempp;/在未未查找的字字符串里搜搜索对应字字符的在TTXT1中中的位置newenndp=nnewsttartpp+finndtxtt.gettTextt().llengtth();txt1.seleect(nnewsttartpp,newwendpp); /找找到相应文文本
45、,并选选择notfiindmeethodd();/if(p.getAActioonCommmandd()=替换 )m2711.settEnabbled(truee);replaace=nnew DDialoog(thhis,替换); / 创建替替换对话框框;JPaneel p11=neww JPaanel();JPaneel p22=neww JPaanel();JPaneel p33=neww JPaanel();findttxt=nnew JJTexttFielld(7);replttxt=nnew JJTexttFielld(7);p1.addd(neew JLLabell(输入入原始字
46、符符:);p1.addd(fiindtxxt);p2.addd(neew JLLabell(输入入替换字符符:);p2.addd(reepltxxt);p3.addd(reeplb);replaace.aadd(Nortth,pp1);replaace.aadd(Centter,p2);replaace.aadd(Soutth,pp3);replaace.ssetSiize(2200,1150);replaace.sshow();if(p.getSSourcce()=repplb) /点点击替换对对话框的确确定按钮后后的事件处处理replaace.ddispoose();str=ttxt1.g
47、etTText();starttp=sttr.inndexOOf(fiindtxxt.geetTexxt();endp=starrtp+ffindttxt.ggetTeext().lenngth();txt1.seleect(sstarttp,enndp);txt1.repllaceSSelecctionn(reppltxtt.gettTextt();/*txtt1.reeplacceRannge(rreplttxt.ggetTeext(),staartp,endpp);*/newenndp=eendp; /获取这次次替换的终终点/if(p.getAActioonCommmandd()=替换下
48、下一个)nextttempp=newwendpp; /获获取上次查查找的终点点做为未查查找字符串串的起点Strinng sttralll=txtt1.geetTexxt();txt1.seleect(nnextttemp,straall.llengtth(); /选选中所有未未查找的字字符串strneext=ttxt1.getSSelecctedTText();newsttartpp=strrnextt.inddexOff(finndtxtt.gettTextt()+nextttempp;/在未未查找的字字符串里搜搜索对应字字符的在TTXT1中中的位置newenndp=nnewsttartpp
49、+finndtxtt.gettTextt().llengtth();txt1.seleect(nnewsttartpp,newwendpp); notfiindmeethodd();txt1.repllaceSSelecctionn(reppltxtt.gettTextt();/*txtt1.reeplacceRannge(rreplttxt.ggetTeext(),newwstarrtp,nnewenndp);/替换换字符*/if(p.getAActioonCommmandd()=全选 )txt11.sellectAAll(); if(p.getAActioonCommmandd()=日期/
50、时间 ) /用DATTE类插入入当前日期期/时间,编编译时会出出现说明txt11.settTextt(txtt1.geetTexxt()+Caleendarr.gettInsttancee().ggetTiime().toSStrinng();/格式/if(p.getSSourcce()=fonnt)/字体 neww MyFFont(); if(p.getAActioonCommmandd()=字体颜颜色 ) /字字体颜色JColoorChoooserr jCoolor=new JCollorChhooseer(); /调调用颜色面面板,设置置前景就可可更改字体体颜色Colorr fcoolo
51、r=txt11.gettForeegrouund(); txt1.setFForeggrounnd( jjColoor.shhowDiialogg(txtt1,选选择字体颜颜色,ffcoloor);normaalStyyle = (SStyleedDoccumennt) ttxt1.getDDocumment().aaddSttyle(Keyywordd_Styyle, nulll);StyleeConsstantts.seetForregroound(normmalSttyle, fcoolor);/试图风风格/if(p.getAActioonCommmandd()=状态栏栏 ) /状态态栏
52、的隐藏藏和显视statte.seetVissiblee( !(statte.issVisiible() );/帮助/if(p.getAActioonCommmandd()=帮助主主题 )myheelp hhelp=new myheelp();help.setSSize(200,240);if(p.getAActioonCommmandd()=关于 ) JLabeel prromptt=neww JLaabel(欢迎使使用我的JJAVA编编辑器,JLabbel.CCENTEER);JOptiionPaane.sshowMMessaageDiialogg(nulll,prromptt,关于于我的J
53、AAVA编辑辑器,JJOptiionPaane.IINFORRMATIION_MMESSAAGE);publiic vooid ootherrsavee() /另存为为方法if(chhoosee.APPPROVEE_OPTTION=chooose.showwSaveeDiallog(tthis) path=chooose.ggetSeelecttedFiile().gettPathh(); newfiiles=new Filee(patth);statee.settTextt( 我我的javva编辑器器-+pathh);fnamee=chooose.getSSelecctedFFile().g
54、eetNamme();try newfiiles=new Filee(patth);newfiiles.creaateNeewFille();FileWWriteer fww=neww FilleWriiter(newffiless); fw.wrrite(txt11.gettTextt(); fw.cllose(); catcch(IOOExceeptioon e)publiic vooid nnotfiindmeethodd() /提示查查找不到的的方法nootfinndmetthodif(!ttxt1.getSSelecctedTText().eqqualss(finndtxtt.get
55、tTextt() txtt1.seetCarretPoositiion(00); /光标返返回文件头头部JOptiionPaane.sshowMMessaageDiialogg(nulll,查查找不到对对应的字符符!,查找错误误,JOOptioonPanne.ERRROR_MESSSAGE);m26.ssetEnnableed(faalse); publiic vooid eexit() intt vallue;Strinng qq=返回, 退退出;valuee=JOpptionnPanee.shoowOpttionDDialoog(nuull, 你确定定退出吗?请注意保保存文件!, 退出程序
56、序?, JOptiionPaane.DDEFAUULT_OOPTIOON, JJOptiionPaane.QQUESTTION_MESSSAGE,null, qq, qq0);if(vaalue=JOpptionnPanee.YESS_OPTTION)returrn;else if(vvaluee=JOOptioonPanne.NOO_OPTTION) Sysstem.exitt(0); publiic cllass MyFoont iimpleementts AcctionnListtenerr finaal JDDialoog foontDiialogg; finaal JTTextFFi
57、eldd tfFFont, tfSSize, tfSStylee; finaal innt foontSttyleCConstt = FFont.PLAIIN, FFont.BOLDD, Foont.IITALIIC, FFont.BOLDD + FFont.ITALLIC ; finaal JLList listtStylle, llistFFont, lisstSizze; JLabbel ssamplle; JPannel ppane11, paane2, panne3, panee4;/ 构造造函数MyyFontt publlic MMyFonnt() fonntDiaalog = n
58、eew JDDialoog(myyfr.tthis, 字体体设置, truue); Conntainner ccon = fonntDiaalog.getCConteentPaane(); conn.settLayoout(nnew BBoxLaayoutt(conn, BooxLayyout.Y_AXXIS); panne1 = neww JPaanel(); panne2 = neww JPaanel(); panne3 = neww JPaanel(); panne4 = neww JPaanel(); Fonnt cuurrenntFonnt = txt11.gettFontt();
59、JLaabel lblFFont = neew JLLabell(字体体(F):); JLaabel lblSStylee = nnew JJLabeel(字字形(Y):); JLaabel lblSSize = neew JLLabell(大小小(S):); lbllStylle.seetHorrizonntalAAlignnmentt(SwiingCoonstaants.CENTTER); lbllSizee.settHoriizonttalAllignmment(SwinngConnstannts.CCENTEER); lbllFontt.settPrefferreedSizze(nee
60、w Diimenssion(91, 20); lbllStylle.seetPreeferrredSiize(nnew DDimennsionn(82, 20); lbllSizee.settPrefferreedSizze(neew Diimenssion(100, 20); tfFFont = neew JTTextFFieldd(10); tfFFont.setTText(currrentFFont.getFFontNName(); tfFFont.seleectAlll(); tfFFont.setPPrefeerreddSizee(neww Dimmensiion(2200, 20)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《肺细胞病理学》课件
- 《用图表展示数据》课件
- 广东省汕尾市海丰县2023-2024学年八年级上学期期末考试数学试卷
- 《胃造瘘护理》课件
- 养老院老人健康监测人员激励制度
- 拆除太阳能热水器的协议书(2篇)
- 2024年塔吊租赁合同及施工安全协议3篇
- 2025年郑州货车从业资格考试题库
- 2025年黑河货运从业资格证考试
- 《HELLP综合征与HUS》课件
- Module 3 Unit 2 On Monday Ill go swimming. (教案)2023-2024学年英语四年级下册
- 洪水预警与预报系统
- GJB5765-2006 军用机场场道工程质量评定标准
- 2024年中考语文之文言文对比阅读-狼(解析版)
- 注塑加工协议书
- 《小学语文课内外阅读教学策略研究》课题开题报告
- 《民航客舱设备操作与管理》课件-项目三 客舱应急设备
- 吉林省松原市宁江区2023-2024学年八年级下学期期中考试数学试题
- 新媒体视频剪辑智慧树知到期末考试答案章节答案2024年临沂职业学院
- 西游记车迟国斗法
- 中国式教育现代化教师心得1000字文章10篇
评论
0/150
提交评论