2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  虛擬的Java編輯器設(shè)計報告</p><p><b>  一、需求分析</b></p><p>  此次課程設(shè)計名稱為JAVA編輯器。需要設(shè)計一個圖形界面的文本編輯器,能編輯Java語言源程序,界面和功能類似Editplus。</p><p>  演示程序為計算機(jī)和用戶的對話形式執(zhí)行,即在計算機(jī)的終端顯示圖形界面的文檔編輯

2、器,然后用戶就可以實現(xiàn)編輯,保存等像記事本一樣的功能。</p><p> ?。?)打開以有文件,保存編輯文件,退出編輯器并提醒保存;</p><p>  (2)查找編輯區(qū)中的字符串,用已知字符串替換查找的字符串;</p><p> ?。?)顯示文件的存取路徑;</p><p>  (4)剪切,復(fù)制,粘貼,刪除等;</p><

3、;p> ?。?)改變文本區(qū)字體的顏色,字體大小和形狀的功能;</p><p> ?。?)關(guān)鍵字顯示藍(lán)色、類庫類名顯示紅色。</p><p><b>  二. 設(shè)計</b></p><p><b>  設(shè)計思想</b></p><p>  Java編輯器是用來編寫java程序的源代碼。Java程

4、序編輯器是:圖形界面、線程、流與文件等技術(shù)的綜合應(yīng)用。</p><p>  圖形界面的實現(xiàn):就選擇了swing來完成實現(xiàn),在選擇組件上,文本編輯區(qū)就選用了JTextPane作為主要的部件。</p><p>  由于Java的特性,可能用任何一個編輯器來編輯,于是就將Windows中的記事本作為模仿對象,根據(jù)實現(xiàn)情況刪減了其中的一些功能,如自動換行,設(shè)置字體,打印等功能。在設(shè)計類的時候,考慮

5、到簡單明了,一個主類,一個默認(rèn)屬性myfr類,染色類SyntaxHighlighter作為程序的整體框架,所有的對象和方法都是在默認(rèn)屬性類和染色類中創(chuàng)建和實現(xiàn)的,以及為各組件注冊事件監(jiān)聽程序也是在默認(rèn)屬性類染色類中實現(xiàn)的。本程序主類完成對象的實例化及顯示。</p><p><b>  功能設(shè)計</b></p><p>  本程序涉及到了對圖形用戶界面的設(shè)計與實現(xiàn)和菜單

6、的設(shè)計與實現(xiàn)。用戶可以通過此編輯器對java文件進(jìn)行文字的復(fù)制、剪切、粘貼、刪除、查找、替換、時間的插入、設(shè)置字體顏色和關(guān)鍵字、類庫名著色等。</p><p>  本程序主要有以下3個模塊組成:</p><p><b> ?。?)主體模塊</b></p><p>  由窗口、功能菜單、文本框組成。為用戶選擇編輯的功能提供了簡單、方便的界面。Ja

7、va的窗口由JFrame類生成,我們可以在創(chuàng)建的空白窗口上添加組件。菜單是圖形用戶界面的重要組成部分,是由菜單條(MenuBar)、菜單(Menu)、菜單項(MenuItem)和復(fù)選菜單項(Checkbox MenuItem)等對象組成。</p><p><b>  (2)功能模塊</b></p><p>  有文件的新建、打開、保存、另存為和退出,文字的復(fù)制、剪切、

8、粘貼、刪除、查找、替換、以及時間的插入,為用戶提供了java編輯器的基礎(chǔ)功能。 </p><p><b> ?。?)染色模塊</b></p><p>  關(guān)鍵字顯示藍(lán)色,類庫名顯示紅色。實現(xiàn)高亮子的核心方法</p><p>  StyledDocument.setCharacterAttributes(int offset, int lengt

9、h, AttributeSet s, boolean replace)</p><p><b>  詳細(xì)設(shè)計</b></p><p>  本設(shè)計主要是模仿windows記事本界面,主要的難點(diǎn)是關(guān)鍵字染色算法和查找替換算法。其他的部分相對簡單,主要就是一些容器組件的組合,布局的設(shè)置。主要的功能都在myfr類中實現(xiàn)的。</p><p>  Java

10、中提供的多行文本編輯器有: JTextComponent, JTextArea, JTextPane, JEditorPane等, 都可以使用但是因為語法著色中文本要使用多種風(fēng)格的樣式, 所以這些文本編輯器的document要使用StyledDocument. JTextArea使用的是PlainDocument, 此document不能進(jìn)行多種格式的著色.JTextPane, JEditorPane使用的是StyledDocument

11、, 默認(rèn)就可以使用.</p><p>  為了實現(xiàn)語法著色, 可以繼承自DefaultStyledDocument, 設(shè)置其為這些文本編輯器的documet, 或者也可以直接使用JTextPane, JEditorPane來做. 為了方便, 這里就直接使用JTextPane了</p><p>  (1)主類 class ok</p><p><b>  

12、實例化初始化窗口</b></p><p> ?。?)主窗口體類 class myfr 字體類 class MyFont</p><p> ?。?)染色類class SyntaxHighlighter</p><p> ?。?)鼠標(biāo)右鍵彈出菜單類class handlemouse</p><p> ?。?)幫助主題類class m

13、yhelp</p><p>  (6)關(guān)閉窗口XXX類class xxx</p><p>  (7)關(guān)閉幫助主題窗口類class xxxhelp</p><p><b>  三. 調(diào)試及測試</b></p><p>  1. 調(diào)試過程中遇到的主要問題及解決方法</p><p>  開始把染色類寫在

14、myfr中,結(jié)果出現(xiàn)繼承錯誤,只好把染色類寫在myfr之外,通過引用實現(xiàn)類與類聯(lián)系。在開始設(shè)置字體顏色是出現(xiàn)問題,關(guān)鍵字可著色,不能設(shè)置字體顏色,最后發(fā)現(xiàn)時沒有監(jiān)聽器的位置出現(xiàn)了問題!</p><p>  2. 對設(shè)計和編碼的回顧討論和分析</p><p>  在本設(shè)計中沒有用數(shù)據(jù)庫,在直接用哈希表定義,所以只能簡單定義幾個常用的關(guān)鍵字、類庫名,能說明功能實現(xiàn)就可以,這也是可以該進(jìn)的地方。

15、設(shè)計的功能有限,只能實現(xiàn)簡單的文本編輯,沒有編譯,運(yùn)行等等功能,這也是能力有限。</p><p><b>  3.測試數(shù)據(jù)集</b></p><p><b> ?。?)主體模塊</b></p><p>  定義一個myfr類對象,完成主類的實例化顯示。</p><p><b> ?。?)功

16、能模塊</b></p><p> ?。ˋ)文件(新建、打開、保存、另存為、退出)</p><p><b>  功能圖如下:</b></p><p> ?。˙)編輯(復(fù)制、剪切、粘貼、刪除、查找、查找下一個、替換、替換下一個、全選、日期/時間)</p><p><b>  功能圖如下:</b&g

17、t;</p><p>  (C)格式(字體、字體顏色)</p><p><b>  功能圖如下:</b></p><p> ?。―)格式風(fēng)格(狀態(tài)欄)</p><p><b>  功能圖如下:</b></p><p> ?。‥)幫助(幫助主題、關(guān)于)</p>&

18、lt;p><b>  功能圖如下:</b></p><p> ?。‵)關(guān)鍵字顯示藍(lán)色、類庫類名顯示紅色</p><p><b>  功能圖如下:</b></p><p><b>  四、經(jīng)驗和體會。</b></p><p>  通過此次成功的實現(xiàn)了Java文本編輯器的設(shè)計

19、與編寫,我進(jìn)一步鞏固、加深了對專業(yè)課程《JAVA語言教程》的基礎(chǔ)理論知識的理解,使我熟練的掌握了JAVA語言的輸入輸出流、數(shù)據(jù)庫連接的使用,靈活運(yùn)用各種類庫。此次利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng)我掌握了如何運(yùn)用JAVA語言編寫調(diào)試應(yīng)用系統(tǒng)程序,并且訓(xùn)練了我獨(dú)立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。同時,對于給定的設(shè)計題目,如何對其進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型,也是一項很好的考驗。</p><p>  通

20、過對這個課題的學(xué)習(xí),我發(fā)現(xiàn)Java語言作為一種新興的編輯語言,優(yōu)勢很明顯,整個程序的結(jié)構(gòu)很清晰,讓人一目了然。而且,程序的編輯、修改、移植性也很強(qiáng),可以通過對功能模塊的添加,增加程序的實用性,例如查找、替換、打印等等,這些事今后可以進(jìn)一步研究發(fā)展的方向。</p><p>  通過對這個課題的訓(xùn)練,使我基本掌握了Java編程的基礎(chǔ)知識,主體模塊與功能模塊的結(jié)合技巧、方法,提高了我的自學(xué)能力,也鍛煉了我分析問題、解決

21、問題的能力!</p><p>  此次課程設(shè)計給我印象最深的就是,在程序中非常容易出小的毛病,而這些小毛病往往浪費(fèi)大量的時間而不得其解,讓人煩惱至極。比如,在主方法體中忘記定義一些變量,導(dǎo)致程序運(yùn)行時程序也報出大量錯,有時在鼠標(biāo)隨便定位處不小心按下一個字符,結(jié)果運(yùn)行報錯后出現(xiàn)意外錯誤,有時忘記保存等等……此后讓我懂得寫程序一定要仔細(xì),要認(rèn)真寫清每一行代碼。</p><p><b>

22、;  附錄:主要源程序</b></p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import java.awt.Color;</p><p>  import java.io.*;</p><p>  imp

23、ort java.util.*;</p><p>  import java.util.HashSet;</p><p>  import java.util.Set;</p><p>  import java.awt.datatransfer.*;</p><p>  import java.awt.event.*;</p>

24、<p>  import java.text.*;</p><p>  import javax.swing.*;</p><p>  import javax.swing.event.*;</p><p>  import javax.swing.text.Caret;</p><p>  import javax.swing.

25、JFrame;</p><p>  import javax.swing.JTextPane;</p><p>  import javax.swing.SwingUtilities;</p><p>  import javax.swing.event.DocumentEvent;</p><p>  import javax.swing.

26、event.DocumentListener;</p><p>  import javax.swing.text.BadLocationException;</p><p>  import javax.swing.text.Document;</p><p>  import javax.swing.text.Style;</p><p>

27、;  import javax.swing.text.StyleConstants;</p><p>  import javax.swing.text.StyledDocument;</p><p>  import javax.swing.undo.*;</p><p>  public class ok{</p><p>  publi

28、c static void main(String[] args)</p><p><b>  {</b></p><p>  myfr fr=new myfr ("我的java編輯器");</p><p>  fr.setSize(600,400);</p><p><b>  }<

29、/b></p><p><b>  }</b></p><p>  ///////////////////////////myfr主窗體類//////////////////////////////////////</p><p>  class myfr extends JFrame implements ActionListener&

30、lt;/p><p><b>  { </b></p><p>  String str,strnext,path,fname; //部分變量的聲明</p><p>  JPanel mainpane; </p><p>  JFileChooser choose = new JFileChooser(); //文件對話框&l

31、t;/p><p>  Dialog find,replace; //find為查找對話框,replace對話框</p><p>  JTextField findtxt,repltxt; //find為查找對話框的輸入文本區(qū),replace對話框的輸入文本區(qū)</p><p>  Font newfont;</p><p>  JButton fi

32、ndenter,replb,but; //find為查找對話框,replace對話框的確定按鈕</p><p>  JLabel state=new JLabel("java編輯器------未命名文檔"); //狀態(tài)欄</p><p>  JTextPane txt1; //主輸入文本區(qū)</p><p>  File newfiles;<

33、/p><p>  JPopupMenu popm; //彈出菜單聲明</p><p>  JMenu m1,m2,m3,m4,m5,m6; //各菜單項</p><p>  JMenuItem m61,m62,m26,m271,m34,m51,m52,m53,m54,p_copy,p_cut,p_paste,p_del,font;</p><p>

34、;  int startp,endp,nexttemp,newstartp,newendp; //查找替換時所用的臨時變量</p><p>  JToolBar toolbar = new JToolBar(); //工具條 </p><p>  private Set<String> keywords;</p><p>  private Set<

35、;String> classwords;</p><p>  private Style keywordStyle;</p><p>  private Style classwordStyle;</p><p>  private Style normalStyle;</p><p>  myfr(String sss) /////構(gòu)

36、造函數(shù)開始</p><p><b>  {</b></p><p>  super(sss);</p><p>  JMenuBar mb=new JMenuBar();</p><p>  fname=null; //初始文件名為空 </p><p>  findenter=new JButto

37、n("確定");</p><p>  findenter.addActionListener(this); //聲明對話框中上確定按鈕,并注冊事件</p><p>  replb=new JButton("確定");</p><p>  replb.addActionListener(this);</p><

38、;p>  mainpane=(JPanel)this.getContentPane(); </p><p>  mainpane.setLayout(new BorderLayout()); </p><p>  txt1=new JTextPane();</p><p>  txt1.getDocument().addDocumentListener(new

39、 SyntaxHighlighter(txt1));</p><p>  txt1.addMouseListener(new handlemouse(this));//注冊鼠標(biāo)右擊事件</p><p>  txt1.setFont(new Font("宋體",Font.PLAIN,18));</p><p>  mainpane.add(txt1

40、, BorderLayout.CENTER); </p><p>  mainpane.add("North",toolbar); </p><p>  mainpane.add("South",state);</p><p>  JScrollPane sll = new JScrollPane(); //創(chuàng)建滾動條<

41、/p><p>  mainpane.add("Center", sll); ;</p><p>  sll.getViewport().add(txt1); //將滾動條裝入文本區(qū)</p><p>  popm=new JPopupMenu(); ////POPMeun 開始</p><p>  p_copy=new JMen

42、uItem("復(fù)制 ");</p><p>  p_copy.addActionListener(this);</p><p>  KeyStroke keycopyp=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK); </p><p>  p_copy.setAccelerator(k

43、eycopyp); </p><p>  p_cut=new JMenuItem("剪切 ");</p><p>  p_cut.addActionListener(this);</p><p>  KeyStroke keycutp=KeyStroke.getKeyStroke(KeyEvent.VK_X,Event.CTRL_MASK); &

44、lt;/p><p>  p_cut.setAccelerator(keycutp); </p><p>  p_paste=new JMenuItem("粘貼 ");</p><p>  p_paste.addActionListener(this);</p><p>  KeyStroke keypp=KeyStroke.g

45、etKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK); </p><p>  p_paste.setAccelerator(keypp); </p><p>  p_del=new JMenuItem("刪除 ");</p><p>  p_del.addActionListener(this);</p>

46、;<p>  KeyStroke keydelp=KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0); </p><p>  p_del.setAccelerator(keydelp); </p><p>  popm.add(p_copy);</p><p>  popm.add(p_cut);</p>

47、;<p>  popm.add(p_paste);</p><p>  popm.add(p_del);</p><p>  txt1.add(popm); ////POPMenu 結(jié)束</p><p>  m1=new JMenu("文件(F)");</p><p>  m1.setMnemonic(

48、9;F'); //定義快捷方式</p><p>  JMenuItem m10=new JMenuItem("新建 ");</p><p>  m10.addActionListener(this); //注冊事件監(jiān)聽器</p><p>  KeyStroke keynew=KeyStroke.getKeyStroke(KeyEvent.

49、VK_N,Event.CTRL_MASK); //定義快捷鍵</p><p>  m10.setAccelerator(keynew); </p><p>  JMenuItem m11=new JMenuItem("打開 ");</p><p>  m11.addActionListener(this);</p><p>

50、;  KeyStroke keyopen=KeyStroke.getKeyStroke(KeyEvent.VK_O,Event.CTRL_MASK); </p><p>  m11.setAccelerator(keyopen); </p><p>  JMenuItem m12=new JMenuItem("保存 ");</p><p>  m

51、12.addActionListener(this);</p><p>  KeyStroke keysave=KeyStroke.getKeyStroke(KeyEvent.VK_S,Event.CTRL_MASK); </p><p>  m12.setAccelerator(keysave); </p><p>  JMenuItem m13=new JMen

52、uItem("另保存為 ");</p><p>  m13.addActionListener(this);</p><p>  JMenuItem m14=new JMenuItem("退出 ");</p><p>  m14.addActionListener(this);</p><p>  Ke

53、yStroke keyexit=KeyStroke.getKeyStroke(KeyEvent.VK_F4,Event.ALT_MASK); </p><p>  m14.setAccelerator(keyexit); </p><p>  ////////////////////////////////////////////</p><p>  m2=new

54、JMenu("編輯(E)");</p><p>  m2.setMnemonic('E');</p><p>  JMenuItem m21=new JMenuItem("復(fù)制 ");</p><p>  m21.addActionListener(this);</p><p>  Ke

55、yStroke keycopy=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK); </p><p>  m21.setAccelerator(keycopy); </p><p>  JMenuItem m22=new JMenuItem("剪切 ");</p><p>  m22.ad

56、dActionListener(this);</p><p>  KeyStroke keycut=KeyStroke.getKeyStroke(KeyEvent.VK_X,Event.CTRL_MASK); </p><p>  m22.setAccelerator(keycut); </p><p>  JMenuItem m23=new JMenuItem(&

57、quot;粘貼 ");</p><p>  m23.addActionListener(this);</p><p>  KeyStroke keyp=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK); </p><p>  m23.setAccelerator(keyp); </p>

58、<p>  JMenuItem m24=new JMenuItem("刪除 ");</p><p>  m24.addActionListener(this);</p><p>  KeyStroke keydel=KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0); </p><p>  m24

59、.setAccelerator(keydel); </p><p>  JMenuItem m25=new JMenuItem("查找 ");</p><p>  m25.addActionListener(this);</p><p>  KeyStroke keyfind=KeyStroke.getKeyStroke(KeyEvent.VK_

60、F,Event.CTRL_MASK); </p><p>  m25.setAccelerator(keyfind); </p><p>  m26=new JMenuItem("查找下一個 ");</p><p>  m26.addActionListener(this);</p><p>  KeyStroke key

61、fn=KeyStroke.getKeyStroke(KeyEvent.VK_F3,0); </p><p>  m26.setAccelerator(keyfn); </p><p>  m26.setEnabled(false);</p><p>  JMenuItem m27=new JMenuItem("替換 ");</p>

62、<p>  m27.addActionListener(this);</p><p>  KeyStroke keyrepl=KeyStroke.getKeyStroke(KeyEvent.VK_H,Event.CTRL_MASK); </p><p>  m27.setAccelerator(keyrepl); </p><p>  m271=new J

63、MenuItem("替換下一個");</p><p>  m271.setEnabled(false);</p><p>  m271.addActionListener(this);</p><p>  KeyStroke keyrepn=KeyStroke.getKeyStroke(KeyEvent.VK_F6,0); </p>

64、<p>  m271.setAccelerator(keyrepn); </p><p>  JMenuItem m28=new JMenuItem("全選 ");</p><p>  m28.addActionListener(this);</p><p>  KeyStroke keyall=KeyStroke.getKeyStr

65、oke(KeyEvent.VK_A,Event.CTRL_MASK); </p><p>  m28.setAccelerator(keyall); </p><p>  JMenuItem m29=new JMenuItem("日期/時間 ");</p><p>  m29.addActionListener(this);</p>

66、<p>  ///////////////////////////////////////////</p><p>  m3=new JMenu("格式(O)");</p><p>  m3.setMnemonic('O');</p><p>  font=new JMenuItem("字體[F]"

67、);</p><p>  font.addActionListener(this);</p><p>  JMenuItem m33=new JMenuItem("字體顏色 ");</p><p>  m33.addActionListener(this);</p><p>  //////////////////////

68、////////////////////</p><p>  m5=new JMenu("視圖風(fēng)格(V)");</p><p>  m5.setMnemonic('V');</p><p>  m54=new JMenuItem("狀態(tài)欄 ");</p><p>  m54.addAct

69、ionListener(this);</p><p>  //////////////////////////////////////////</p><p>  m6=new JMenu("幫助(H)");</p><p>  m6.setMnemonic('H'); </p><p>  m61=new

70、 JMenuItem("幫助主題 ");</p><p>  m61.addActionListener(this);</p><p>  m62=new JMenuItem("關(guān)于 ");</p><p>  m62.addActionListener(this);</p><p><b>

71、  //添加各項</b></p><p>  m1.add(m10); m1.add(m11); m1.add(m12); m1.add(m13); m1.addSeparator(); m1.add(m14);m3.add(font);</p><p>  m2.add(m21); m2.add(m22); m2.add(m23); m2.add(m24); m2.addSe

72、parator(); m2.add(m25);</p><p>  m2.add(m26); m2.add(m27); m2.add(m271); m2.addSeparator(); m2.add(m28);</p><p>  m2.add(m29); m3.add(m33); m5.add(m54); m6.add(m61); </p><p>  m6.ad

73、dSeparator(); m6.add(m62); mb.add(m1); mb.add(m2); mb.add(m3); </p><p>  mb.add(m5); mb.add(m6); this.setJMenuBar(mb); //設(shè)置菜單欄</p><p>  setVisible(true);</p><p><b>  pack();&l

74、t;/b></p><p><b>  show();</b></p><p>  this.addWindowListener(new xxx(this));</p><p>  }///構(gòu)造函數(shù)結(jié)束///</p><p>  ////////////////事件處理///////////////////////

75、//////////////</p><p>  public void actionPerformed(ActionEvent p)</p><p><b>  {</b></p><p>  if(p.getActionCommand()=="新建 ") //響應(yīng)菜單及工具欄事件</p><p>

76、<b>  { </b></p><p>  fname=null; //置文件名為空,便于判斷文件是否保存過</p><p>  txt1.setText("");</p><p>  state.setText(" 我的java編輯器------未命名文檔");</p><p>

77、;<b>  }</b></p><p>  if(p.getActionCommand()=="打開 ")</p><p><b>  {</b></p><p><b>  try {</b></p><p>  if(this.choose.APPRO

78、VE_OPTION==this.choose.showOpenDialog(this))</p><p><b>  { </b></p><p>  path=this.choose.getSelectedFile().getPath(); </p><p>  fname=this.choose.getSelectedFile().getN

79、ame();</p><p>  File file=new File(path);</p><p>  int flength=(int)file.length(); </p><p>  FileReader fReader=new FileReader(file); </p><p>  char[] data=new char[fle

80、ngth]; </p><p>  fReader.read(data,0,flength); </p><p>  txt1.setText(new String(data)); </p><p>  state.setText(" 我的java編輯器------"+path+" 共"+flength+"字節(jié)&qu

81、ot;);//狀態(tài)欄統(tǒng)計文件字節(jié)數(shù)</p><p>  txt1.setCaretPosition(0);</p><p><b>  }}</b></p><p>  catch(IOException e)</p><p><b>  {}</b></p><p><

82、;b>  }</b></p><p>  if(p.getActionCommand()=="保存 ")</p><p><b>  {</b></p><p>  if(fname==null) //如果文件名為空,說明文件未被創(chuàng)建,彈出另存為對話框</p><p>  { oth

83、ersave(); }</p><p><b>  try {</b></p><p>  File savefile=new File(path);</p><p>  savefile.createNewFile(); </p><p>  FileWriter fw=new FileWriter(savefile)

84、; </p><p>  fw.write(txt1.getText()); </p><p>  fw.close(); </p><p><b>  }</b></p><p>  catch(IOException e)</p><p><b>  {}</b><

85、/p><p><b>  }</b></p><p>  if(p.getActionCommand()=="另保存為 ")</p><p>  {othersave();}</p><p>  if(p.getActionCommand()=="退出 ")</p>&l

86、t;p><b>  {exit();}</b></p><p>  //////////////////編輯////////////////////</p><p>  if(p.getActionCommand()=="復(fù)制 ")</p><p>  { txt1.copy(); }</p><p

87、>  if(p.getActionCommand()=="剪切 ")</p><p>  { txt1.cut(); }</p><p>  if(p.getActionCommand()=="粘貼 ")</p><p>  { txt1.paste(); }</p><p>  if(p.get

88、ActionCommand()=="刪除 ")</p><p><b>  { </b></p><p>  txt1.replaceSelection("");</p><p><b>  }</b></p><p>  //////////////////

89、/////////////////////////////////////</p><p>  if(p.getActionCommand()=="查找 ") // 創(chuàng)建查找對話框;</p><p>  {find=new Dialog(this,"查找");</p><p>  JPanel p1=new JPanel();

90、</p><p>  JPanel p2=new JPanel();</p><p>  findtxt=new JTextField(7);</p><p>  p1.add(new JLabel("輸入要查找字符:"));</p><p>  p1.add(findtxt);</p><p> 

91、 p2.add(findenter);</p><p>  find.add("Center",p1);</p><p>  find.add("South",p2);</p><p>  find.setSize(200,200);</p><p>  find.show();</p>

92、<p><b>  }</b></p><p>  if(p.getSource()==findenter) ///點(diǎn)擊查找對話框的確定按鈕后的事件處理</p><p><b>  {</b></p><p>  if(findtxt.getText().equals("")) </p&

93、gt;<p>  {find.dispose();}</p><p>  else if(!findtxt.getText().equals(""))</p><p>  { find.dispose();</p><p>  str=txt1.getText();</p><p>  startp=str.

94、indexOf(findtxt.getText());</p><p>  endp=startp+findtxt.getText().length();</p><p>  txt1.select(startp,endp);</p><p>  m26.setEnabled(true);</p><p>  newendp=endp;///

95、/////獲取這次查找的終點(diǎn)</p><p>  notfindmethod();</p><p><b>  }</b></p><p><b>  }</b></p><p>  //////////////////////////////////////////////////////////

96、</p><p>  if(p.getActionCommand()=="查找下一個 ")</p><p><b>  {</b></p><p>  nexttemp=newendp; /////獲取上次查找的終點(diǎn)做為未查找字符串的起點(diǎn)</p><p>  String strall=txt1.ge

97、tText();</p><p>  txt1.select(nexttemp,strall.length()); /////選中所有未查找的字符串</p><p>  strnext=txt1.getSelectedText();</p><p>  newstartp=strnext.indexOf(findtxt.getText())+nexttemp;///

98、//在未查找的字符串里搜索對應(yīng)字符的在TXT1中的位置</p><p>  newendp=newstartp+findtxt.getText().length();</p><p>  txt1.select(newstartp,newendp); ////找到相應(yīng)文本,并選擇</p><p>  notfindmethod();</p><p

99、><b>  }</b></p><p>  /////////////////////////////////////////////////////////</p><p>  if(p.getActionCommand()=="替換 ")</p><p>  {m271.setEnabled(true);<

100、/p><p>  replace=new Dialog(this,"替換"); // 創(chuàng)建替換對話框;</p><p>  JPanel p1=new JPanel();</p><p>  JPanel p2=new JPanel();</p><p>  JPanel p3=new JPanel();</p>

101、<p>  findtxt=new JTextField(7);</p><p>  repltxt=new JTextField(7);</p><p>  p1.add(new JLabel("輸入原始字符:"));</p><p>  p1.add(findtxt);</p><p>  p2.add(n

102、ew JLabel("輸入替換字符:"));</p><p>  p2.add(repltxt);</p><p>  p3.add(replb);</p><p>  replace.add("North",p1);</p><p>  replace.add("Center",p

103、2);</p><p>  replace.add("South",p3);</p><p>  replace.setSize(200,150);</p><p>  replace.show();</p><p><b>  }</b></p><p>  if(p.get

104、Source()==replb) ///點(diǎn)擊替換對話框的確定按鈕后的事件處理</p><p><b>  {</b></p><p>  replace.dispose();</p><p>  str=txt1.getText();</p><p>  startp=str.indexOf(findtxt.getTex

105、t());</p><p>  endp=startp+findtxt.getText().length();</p><p>  txt1.select(startp,endp);</p><p>  txt1.replaceSelection(repltxt.getText());</p><p>  /*txt1.replaceRang

106、e(repltxt.getText(),startp,endp);*/</p><p>  newendp=endp; ///獲取這次替換的終點(diǎn)</p><p><b>  }</b></p><p>  //////////////////////////////////////////////////</p><p>

107、;  if(p.getActionCommand()=="替換下一個")</p><p>  {nexttemp=newendp; /////獲取上次查找的終點(diǎn)做為未查找字符串的起點(diǎn)</p><p>  String strall=txt1.getText();</p><p>  txt1.select(nexttemp,strall.leng

108、th()); /////選中所有未查找的字符串</p><p>  strnext=txt1.getSelectedText();</p><p>  newstartp=strnext.indexOf(findtxt.getText())+nexttemp;/////在未查找的字符串里搜索對應(yīng)字符的在TXT1中的位置</p><p>  newendp=newst

109、artp+findtxt.getText().length();</p><p>  txt1.select(newstartp,newendp); </p><p>  notfindmethod();</p><p>  txt1.replaceSelection(repltxt.getText());</p><p>  /*txt1.

110、replaceRange(repltxt.getText(),newstartp,newendp);//替換字符*/</p><p><b>  }</b></p><p>  if(p.getActionCommand()=="全選 ")</p><p>  {txt1.selectAll(); } </p>

111、<p>  if(p.getActionCommand()=="日期/時間 ") //用DATE類插入當(dāng)前日期/時間,編譯時會出現(xiàn)說明</p><p>  {txt1.setText(txt1.getText()+Calendar.getInstance().getTime().toString());}</p><p><b>  //格式//&

112、lt;/b></p><p>  if(p.getSource()==font)//字體</p><p><b>  { </b></p><p>  new MyFont(); </p><p><b>  }</b></p><p>  if(p.getActi

113、onCommand()=="字體顏色 ") //字體顏色</p><p><b>  {</b></p><p>  JColorChooser jColor=new JColorChooser(); //調(diào)用顏色面板,設(shè)置前景就可更改字體顏色</p><p>  Color fcolor=txt1.getForegroun

114、d(); </p><p>  txt1.setForeground( jColor.showDialog(txt1,"選擇字體顏色",fcolor));</p><p>  normalStyle = ((StyledDocument) txt1.getDocument()).addStyle("Keyword_Style", null);<

115、/p><p>  StyleConstants.setForeground(normalStyle, fcolor);</p><p><b>  }</b></p><p><b>  //試圖風(fēng)格//</b></p><p>  if(p.getActionCommand()=="狀態(tài)欄

116、") //狀態(tài)欄的隱藏和顯視</p><p>  {state.setVisible( !(state.isVisible()) );}</p><p>  /////////////////////幫助///////////////////////////////////////////</p><p>  if(p.getActionCommand()

117、=="幫助主題 ")</p><p>  {myhelp help=new myhelp();</p><p>  help.setSize(200,240);}</p><p>  if(p.getActionCommand()=="關(guān)于 ")</p><p><b>  { </b&

118、gt;</p><p>  JLabel prompt=new JLabel("歡迎使用我的JAVA編輯器",JLabel.CENTER);</p><p>  JOptionPane.showMessageDialog(null,prompt,"關(guān)于我的JAVA編輯器",JOptionPane.INFORMATION_MESSAGE);</p

119、><p><b>  }</b></p><p><b>  }</b></p><p>  public void othersave() //另存為方法</p><p><b>  {</b></p><p>  if(choose.APPROVE_OP

120、TION==choose.showSaveDialog(this))</p><p><b>  { </b></p><p>  path=choose.getSelectedFile().getPath(); </p><p>  newfiles=new File(path);</p><p>  state.se

121、tText(" 我的java編輯器------"+path);</p><p>  fname=choose.getSelectedFile().getName();;</p><p><b>  try {</b></p><p>  newfiles=new File(path);</p><p>

122、;  newfiles.createNewFile();</p><p>  FileWriter fw=new FileWriter(newfiles); </p><p>  fw.write(txt1.getText()); </p><p>  fw.close(); </p><p>  }catch(IOException e)&

123、lt;/p><p><b>  {}</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public void notfindmethod() //提示查找不到的方法notfindmethod</p><

124、p><b>  {</b></p><p>  if(!txt1.getSelectedText().equals(findtxt.getText())) </p><p>  { txt1.setCaretPosition(0); //光標(biāo)返回文件頭部</p><p>  JOptionPane.showMessageDialog(nu

125、ll,"查找不到對應(yīng)的字符!","查找錯誤",JOptionPane.ERROR_MESSAGE);</p><p>  m26.setEnabled(false); }</p><p><b>  }</b></p><p>  public void exit()</p><p&g

126、t;  { int value;</p><p>  String[] qq={"返回", "退出"};</p><p>  value=JOptionPane.showOptionDialog(null, "你確定退出嗎?請注意保存文件!", "退出程序?", </p><p>  J

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論