《java实验文本编辑器.docx》由会员分享,可在线阅读,更多相关《java实验文本编辑器.docx(13页珍藏版)》请在优知文库上搜索。
1、考查报告课程名称:.iava试验姓名:学号:SUPer(记事本”);标题创建菜单条JMcnuBiirbar=newJMenuBarO:SetJMenuBar(bar);/设置文件菜单及其菜单项JMenu=neJMenu(文件(F)”);(,F,);/设置新建菜单项JMenuItemnewItern=newJMenuItom(新建(N)*);newItern.SetMnemonic(N);(newItem);newItom.addAction1.istcner(newAction1.istenerOpublicvoidactionPerformed(ActionEventevent)Idispl
2、ayText.setText;);/设置打开菜单项JMenullemopenItem三newJMenuIten(打开(0)”);open!tem.SetMnemonic(,O);(openItorn);openItcm.addActionl.istener(newAction1.istenerOpublicvoidactionPerfo11ned(ActionEventevent)fd.SetTit1。(打开):设置标题fd.showO;if(fd.getFile()!=null)=new();/用从fd中取得的文件建立新文件,即打开的文件JisplayText.setText(*);try(
3、f=new(file):BufferedReaderb=newBufferedReader(f);/按行读打开的文件,然后传入文本域Strings;try(WhiIe(s=b.readlJne()!=null)lisplayText.append(s+r);将给定文本追加到文本域的当前文本(即把读的内容加入文本域)f.close();b.close();)catch(IOExceptionex)catch(ex)elsereturn:):0:/加分隔线/设置保存菜单项JMcnuItcmsaveItem=newJMenuItem(保存(三)”);saveltom.SetMnemonic(S):(
4、saveItem);saveItern.addAction1.istener(newAction1.istenerOpublicvoidactionPerfo11ned(ActionEventevent)fd.setKile(,*.java);fd.setMode();fd.SetTitIer保存):fl.show():if(d.ellile()!=null)=newO);try(PrinlWrilerpw=newPrintWiiter(file);pw.print(displayText.getText():这部分用于把textAreal中的内容打印到PH,指定的文件file中去,file围
5、在对话框中选定的文件pw.flushO;刷新该流的缓冲,然后关闭该流pw.close():)catch(ex)ex.printStackTrace();)elsereturn:):设置另存为菜单项JMenuItemSaVeASllem=nevJMenuIIem(另存为(Z)”);SaveAsItem.SetMnemonic(7);(SaveAsItem):SaveAsItem.addAction1.iStener(newAction1.istenerOpublicvoidactionPerfo11ned(ActionEventevent)fd.setFile(*.java*):fd.sotMo
6、de():fd.SetTiIler另存为”);fd.showO:if(fd.gctFile()!=nul1)-new():try(PrintWriterpw=newPrintMTiteNfilehpw.print(displayTcxt.getText();这一部分用于把textAreal中的内容打印到pw指定的文件file中去,file困在对话框中选定的文件pw.flush();/刷新该流的级冲,然后关闭核流pw.close();)catch(lionex)ex.PrintSlackTraceO;)elsereturn:);O;加分隔线/设置退出菜单项JMenuItemexitItem=ne
7、wJMenuItcm(退出(X):exi11tern.SetMnemonic(,):(exitIIem);exitItern.addction1.istoner(newAction1.istenerOpublicvoidactionPerformed(ActionEventevent)(System.exit(O):);bar.add():创建编辑菜胞及其菜单项JMenueditMenu=newJMenu(编辑(E)”):editMenu.SetMnemonic(E,);剪切菜单选项JMenuItomcutltem=newJMenuItom(剪切(T)”);CulItetB.SetMnemon
8、ic(,T,);editMenu.add(cutItem);cutItem.addction1.istcner(newAction1.istenerO(publicvoidactionPerformed(AclionEvenlevent)*SelectText=displayText.getSelectedText();取得选定的文本intstart-displayText.getSelectionStart():/选定的文本的起先位附intend-displayText.getSelectionEnd()ji定的文本的结束位置displayText.replaceRange(”,start,
9、Cnd):/*用指定替换文本替换指定起先位置及结束位置之间的文本。这里指定替换文本为空,即为剪切了文本*/):纪制菜单选项JMenuItemcopyItem=newJMenuItem(复制(C)”):copyItem.selMnmonic(C,);editMenu,add(copyItern);copyItom.addction1.istencr(newAction1.istener()publicvoidactinPerformed(ActionEventevent)(SelectText-displayText.getSelectedTextO;获得选中的内容,并保存在SclectText
10、里粘贴的实现JMonuItempasteltom=newJMenuItera(粘贴(P)”):PasleIleiii.SetMnemonic(P);editMenu,add(pasteltem):pasteitem.addAction1.istencr(newAction1.istenerOpublicvoidactinPerformed(ActionEventevent)(intposition=displayText.getCaretPositionO;获得鼠标当前位置displayText.insert(solectText,position);/插入到鼠标当前位置):editMenu.
11、addSeparator();加分隔线替换的实现JMcnuItcmS=newJMenuItem(替换R):s(R,):editMenu.add(三);s(newAction1.istenerOpublicvoidactionPerformed(ActionEvontevent)(JPanelsJPanelO;J1.abel100kUP1.abeI=newJ1.abeI(要杵换的内容);JTextFieldinputText=newJTextField(IO):J1.abelSJ1.abel(替换为:*);JTextFieldchangetoText=newJTextField(IO);S(10
12、0kup1.abel);s(inputText):s(三);s(changetoText):JOptionPanc.ShOWMeSsag。DialOg(nulI,s):Stringtext=displayText.getText():/获得整个文本内容StringChangeTeXt=text.rcplaccFirst(inputText.getText(),changctoTcxt.getTextO);获得替换后的内容displayText.SeITeXl(CharlgeText);):全部替换的实现JMenuItemas=newJMenuItem(全部杵换(Q);as(Q);editMen
13、u.add(as);as(newAction1.istenerOpublicvoidactionPerformcd(ActionEvcntevent)(JPanelsJPanel();J1.abel100kUP1.HbeI=ne*J1.abel(要替换的内容”);JTextFieldinputTcxt=newJTextField(IO):J1.abelsJ1.abeIr替换为:):JTextFieldChangeI。TeXl=newJTextField(IO);S(100kup1.abel);s(inputTcxt):s(三);s(changetoTexl);JOptionPane.ShoUN
14、eSSageDiaIOg(nulI,s);Stringtext=displayTcxt.getText();获得整个文本内容StringChangeTeXt=text.replaceAl1(inputText.getTextO,ChangetoText.getText():/获得替换后的内容displayText.SetTeXt(ChangeTeXt);):editMenu.addSeparator();加分隔线插入子菜单JMenuIteminsertItem=newJMenUItem(插入文本(K)”);insertItom.SetMnemonicCK,):OtlitMenu.add(insertItern):insertI1.em.uldAclion1.islener(newAction1.istenerO(publicvoidactiOnPerformcd(ActionEventevent)JPanelinsertPanol=newJPanel();J1.abelinSerl1.abeI=newJ1.abe1(要插入的内容;JTextFieldinputText-newJ