版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 1 問題描述</b></p><p> 設(shè)計(jì)一個(gè)具有GUI界面的記事本,含有簡(jiǎn)單的文字編輯功能,如:剪切、復(fù)制、粘貼、刪除;還能實(shí)現(xiàn)保存、另存為、設(shè)置字體和顏色等功能。</p><p> 這次課程設(shè)計(jì)由**、**和我三個(gè)人合作完成。**主要負(fù)責(zé)3概要設(shè)計(jì)和5測(cè)試分析。**4.1GUI程序界面設(shè)計(jì),我負(fù)責(zé)4. 2JM4類的實(shí)現(xiàn)。由于4.
2、3事件處理和撰寫程序關(guān)系密切,這兩項(xiàng)都由**負(fù)責(zé)。</p><p><b> 2 需求分析</b></p><p> 本程序要構(gòu)建的記事本程序參照了Windows操作系統(tǒng)的記事本工具,其功能有以下幾個(gè)方面:</p><p> (1)、菜單中有“文件”、“編輯”、“格式”、“幫助”四個(gè)主菜單;</p><p> (
3、2)、“文件”有“新建”、“打開”、“保存”、“另存為”、“退出”分別用于新建文件,打開文件,保存文件,另存文件,退出記事本。</p><p> (3)、“編輯”有“剪切”、“復(fù)制”、“粘貼”三個(gè)子菜單:用于剪切文字,復(fù)制文字,粘貼文字,刪除文字。</p><p> (4)、“格式”中,有“字體”、“顏色”兩個(gè)子菜單:用于設(shè)置文字的字體而和顏色,字體有“宋體”、“楷體”、“黑體”顏色有
4、“紅”、“藍(lán)”、“綠”。</p><p> (5)、“幫助”菜單中有“關(guān)于”的子菜單,用于描述記事本程序的相關(guān)信息。</p><p> (6)、還有彈出菜單也能實(shí)現(xiàn)“剪切”、“復(fù)制”、“粘貼”三個(gè)子菜單的功能。</p><p><b> 3 概要設(shè)計(jì)</b></p><p><b> 3.1自定義類說(shuō)明
5、</b></p><p> 3.1.1 類名: JM (1)作用: 主類(2)繼承的父類: JFrame類 </p><p> ?。?)成員變量說(shuō)明:</p><p> JMenuBar mb=new JMenuBar(); //定義一個(gè)菜單項(xiàng)</p><p> /******定義各個(gè)菜單及其菜單項(xiàng)******/&l
6、t;/p><p> JMenu m1=new JMenu("文件(F)");</p><p> JMenuItem n=new JMenuItem("新建");</p><p> JMenuItem open=new JMenuItem("打開(O)... Ctrl+O");</p><
7、;p> JMenuItem save=new JMenuItem("保存(S)... Ctrl+S");</p><p> JMenuItem save_as=new JMenuItem("另存為(A)...Ctrl+A");</p><p> JMenuItem exit=new JMenuItem("退出");&l
8、t;/p><p> JMenu m2=new JMenu("編輯(E)");</p><p> JMenuItem copy=new JMenuItem("復(fù)制(C) Ctrl+C");</p><p> JMenuItem cut=new JMenuItem("剪切(X) Ctrl+X");</
9、p><p> JMenuItem paste=new JMenuItem("粘貼(P) Ctrl+P");</p><p> JMenu m3=new JMenu("格式(O)");</p><p> JMenu f1=new JMenu("字體(F)");</p><p> J
10、MenuItem i11=new JMenuItem("宋體");</p><p> JMenuItem i12=new JMenuItem("楷體");</p><p> JMenuItem i13=new JMenuItem("黑體");</p><p> JMenu color=new JMen
11、u("顏色(C)");</p><p> JMenuItem i21=new JMenuItem("紅");</p><p> JMenuItem i22=new JMenuItem("藍(lán)"); </p><p> JMenuItem i23=new JMenuItem("綠");
12、</p><p> JMenu m4=new JMenu("幫助(H)");</p><p> JMenuItem about=new JMenuItem("關(guān)于");</p><p> /*****定義彈出菜單及其菜單項(xiàng)*****/</p><p> JPopupMenu pm=new JPo
13、pupMenu();</p><p> JMenuItem item1=new JMenuItem("復(fù)制");</p><p> JMenuItem item2=new JMenuItem("剪切");</p><p> JMenuItem item3=new JMenuItem("粘貼");<
14、;/p><p> /***********編輯區(qū)**********/ </p><p><b> String s;</b></p><p> Container c;</p><p> JTextArea editor=new JTextArea(s);</p><p> ?。?)主要方法
15、說(shuō)明:</p><p> JM( )方法創(chuàng)建一個(gè)窗口并設(shè)置窗口的相應(yīng)參數(shù),以及把各個(gè)項(xiàng)目加到窗上</p><p> private void addJMenuBar( )方法把各個(gè)菜單添加到菜單棒上 private void addFileMenu( ) private void addEditMenu( ) private void addFormMenu( ) priva
16、te void addHelpMenu( ) private void addJPopupMenu( )各個(gè)方法則把相應(yīng)的菜單項(xiàng)添加到各自的“文件”、“編輯”、“格式”、“幫助”菜單上,及彈出菜單上</p><p> 3.1.2 類名: JM4</p><p> (1)作用: 主類(2)繼承的父類: JM類 </p><p> ?。?)主要成員方法說(shuō)明:&l
17、t;/p><p> 編輯區(qū)鍵盤事件:KeyListener類 如果記事本的編輯區(qū)內(nèi)用鍵盤輸入了字符,就能夠被程序監(jiān)聽;</p><p> editor.addKeyListener( new KeyAdapter()</p><p> {public void keyTyped(KeyEvent e){flag=1;}});</p><p>
18、; 窗口的事件監(jiān)聽:windowListener類;</p><p> class windowListener extends WindowAdapter</p><p> { </p><p> public void windowClosing(WindowEvent e)</p><
19、;p><b> { </b></p><p> if(flag==0)System.exit(0);</p><p> else close();</p><p><b> }</b></p><p><b> } </b></p>&
20、lt;p> 菜單項(xiàng)的事件監(jiān)聽:ActionListener類;</p><p> public void actionPerformed(ActionEvent e)</p><p><b> {</b></p><p> Font f2=editor.getFont();</p><p> JMenuI
21、tem mi=(JMenuItem) e.getSource();</p><p><b> …… </b></p><p><b> }</b></p><p><b> 3.2 程序流程圖</b></p><p><b> 3.2.1主流程圖</b&
22、gt;</p><p> 3.2.2 “文件”菜單操作流程圖</p><p> 3.2.3 “編輯”菜單操作流程圖</p><p> 3.2.4 “格式”菜單操作流程圖</p><p><b> 、</b></p><p> 3.2.5 彈出菜單操作流程圖</p><
23、p> 3.2.6 “幫助”菜單操作流程圖</p><p><b> 4 詳細(xì)設(shè)計(jì)</b></p><p> 4.1 GUI程序界面設(shè)計(jì)</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> i
24、mport javax.swing.*;</p><p> import java.io.*; </p><p> public class JM extends JFrame</p><p><b> { </b></p><p> JMenuBar mb=new JMenuBar(); //定義一個(gè)菜單項(xiàng)
25、</p><p> /******定義各個(gè)菜單及其菜單項(xiàng)******/</p><p> JMenu m1=new JMenu("文件(F)");</p><p> JMenuItem n=new JMenuItem("新建");</p><p> JMenuItem open=new JMen
26、uItem("打開(O)... Ctrl+O");</p><p> JMenuItem save=new JMenuItem("保存(S)... Ctrl+S");</p><p> JMenuItem save_as=new JMenuItem("另存為(A)...Ctrl+A");</p><p>
27、; JMenuItem exit=new JMenuItem("退出");</p><p> JMenu m2=new JMenu("編輯(E)");</p><p> JMenuItem copy=new JMenuItem("復(fù)制(C) Ctrl+C");</p><p> JMenuItem
28、cut=new JMenuItem("剪切(X) Ctrl+X");</p><p> JMenuItem paste=new JMenuItem("粘貼(P) Ctrl+P");</p><p> JMenu m3=new JMenu("格式(O)");</p><p> JMenu f1=new
29、 JMenu("字體(F)");</p><p> JMenuItem i11=new JMenuItem("宋體");</p><p> JMenuItem i12=new JMenuItem("楷體");</p><p> JMenuItem i13=new JMenuItem("黑體&
30、quot;);</p><p> JMenu color=new JMenu("顏色(C)");</p><p> JMenuItem i21=new JMenuItem("紅");</p><p> JMenuItem i22=new JMenuItem("藍(lán)"); </p><
31、p> JMenuItem i23=new JMenuItem("綠");</p><p> JMenu m4=new JMenu("幫助(H)");</p><p> JMenuItem about=new JMenuItem("關(guān)于");</p><p> /*****定義彈出菜單及其菜單項(xiàng)
32、*****/</p><p> JPopupMenu pm=new JPopupMenu();</p><p> JMenuItem item1=new JMenuItem("復(fù)制");</p><p> JMenuItem item2=new JMenuItem("剪切");</p><p>
33、 JMenuItem item3=new JMenuItem("粘貼");</p><p> /***********編輯區(qū)**********/ </p><p><b> String s;</b></p><p> Container c;</p><p> JTextArea edit
34、or=new JTextArea(s);</p><p> Font t=new Font("sanserif",Font.PLAIN,12);</p><p><b> JM()</b></p><p><b> {</b></p><p> super("記
35、事本");</p><p> setSize(500,400);</p><p> try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}</p><p> catch(Exception e){System.err.println("不能設(shè)置外觀的
36、原因;"+e);}</p><p> c = getContentPane();</p><p> c.add(new JScrollPane(editor));</p><p> addFileMenu();</p><p> addEditMenu();</p><p> addFormMenu
37、();</p><p> addHelpMenu();</p><p> addJMenuBar();</p><p> addJPopupMenu();</p><p> setJMenuBar(mb);</p><p> setVisible(true);</p><p> se
38、tDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b> }</b></p><p> /******把菜單項(xiàng)加到菜單上******/</p><p> private void addFileMenu()</p><p><b> {<
39、/b></p><p> m1.add(n);</p><p> m1.add(open);</p><p> m1.add(save);</p><p> m1.add(save_as);</p><p> m1.addSeparator();</p><p> m1.add
40、(exit);</p><p> m1.setFont(t);</p><p><b> }</b></p><p> private void addEditMenu()</p><p><b> {</b></p><p> m2.add(copy);</
41、p><p> m2.add(cut);</p><p> m2.addSeparator();</p><p> m2.add(paste);</p><p> m2.setFont(t);</p><p><b> }</b></p><p> private v
42、oid addFormMenu()</p><p><b> {</b></p><p> m3.add(f1);</p><p> m3.add(color);</p><p> m3.setFont(t);</p><p> f1.add(i11);</p><p
43、> f1.add(i12);</p><p> f1.add(i13);</p><p> color.add(i21);</p><p> color.add(i22);</p><p> color.add(i23);</p><p><b> }</b></p>
44、<p> private void addHelpMenu()</p><p><b> {</b></p><p> m4.add(about);</p><p> m4.setFont(t);</p><p><b> }</b></p><p>
45、 private void addJMenuBar()</p><p><b> {</b></p><p> mb.add(m1);</p><p> mb.add(m2);</p><p> mb.add(m3);</p><p> mb.add(m4);</p>&
46、lt;p> mb.setBackground(Color.cyan);</p><p><b> }</b></p><p> private void addJPopupMenu()</p><p><b> {</b></p><p> editor.add(pm);</p
47、><p> pm.add(item1);</p><p> pm.add(item2);</p><p> pm.add(item3);</p><p><b> }</b></p><p> public static void main(String arg[]){new JM();}&
48、lt;/p><p><b> }</b></p><p> 4.2 JM4類的實(shí)現(xiàn)</p><p> import java.io.*; </p><p> import java.awt.*; </p>
49、;<p> import javax.swing.*; </p><p> import java.awt.event.*;</p><p> import java.awt.Font.*;</p><p> public class JM4 extends JM implements ActionListener,MouseListener/
50、/EventListener</p><p><b> { </b></p><p> int flag=0;</p><p> public JM4()</p><p><b> {</b></p><p> /**********監(jiān)聽器接口**********/
51、</p><p> n.addActionListener(this);</p><p> open.addActionListener(this);</p><p> save.addActionListener(this);</p><p> save_as.addActionListener(this);</p>
52、<p> exit.addActionListener(this);</p><p> copy.addActionListener(this);</p><p> cut.addActionListener(this);</p><p> paste.addActionListener(this);</p><p> i
53、11.addActionListener(this);</p><p> i12.addActionListener(this);</p><p> i13.addActionListener(this);</p><p> i21.addActionListener(this);</p><p> i22.addActionList
54、ener(this);</p><p> i23.addActionListener(this);</p><p> about.addActionListener(this);</p><p> item1.addActionListener(this);</p><p> item2.addActionListener(this)
55、;</p><p> item3.addActionListener(this);</p><p> editor.addMouseListener(this);</p><p> addWindowListener(new windowListener());</p><p><b> 4.3 事件處理</b>
56、;</p><p> 4.3.1 編輯區(qū)鍵盤事件處理</p><p> /***************編輯區(qū)鍵盤事件******************/</p><p> editor.addKeyListener( new KeyAdapter()</p><p> {public void keyTyped(KeyEvent
57、 e){flag=1;}});</p><p><b> } </b></p><p> 4.3.2 窗口事件處理</p><p> /**************窗口監(jiān)聽器**************/ </p><p> class windowListener extends WindowAdapter&
58、lt;/p><p> { </p><p> public void windowClosing(WindowEvent e)</p><p><b> { </b></p><p> if(flag==0)System.exit(0);</p>&
59、lt;p> else close();</p><p><b> }</b></p><p><b> } </b></p><p> 4.3.3 菜單項(xiàng)事件處理</p><p> /***************菜單項(xiàng)監(jiān)聽器****************/</p&
60、gt;<p> public void actionPerformed(ActionEvent e)</p><p><b> {</b></p><p> Font f2=editor.getFont();</p><p> JMenuItem mi=(JMenuItem) e.getSource();</p>
61、;<p> if(mi==n) //新建</p><p><b> { </b></p><p> if(flag==0) editor.setText("");</p><p> else close2(); </p&g
62、t;<p><b> }</b></p><p> if(mi==open) //打開</p><p> {loadFile();}</p><p> if(mi==save||mi==save_as) //保存和另存為</p><p> {s
63、aveFile();}</p><p> if(mi==exit) //退出</p><p> {if(flag==0)System.exit(0); close();}</p><p> if(mi==copy) //復(fù)制</p><p> {
64、editor.copy();}</p><p> if(mi==cut) //剪切</p><p> {editor.cut();}</p><p> if(mi==paste) //粘貼</p><p> {editor.paste();}<
65、;/p><p> if(mi==i11) //字體設(shè)置</p><p> {editor.setFont(new java.awt.Font("宋體",java.awt.Font.PLAIN,f2.getSize()));}</p><p> if(mi==i12)</p><
66、p> {editor.setFont(new java.awt.Font("楷體",java.awt.Font.PLAIN,f2.getSize()));}</p><p> if(mi==i13)</p><p> {editor.setFont(new java.awt.Font("黑體",java.awt.Font.PLAIN,f2
67、.getSize()));}</p><p> if(mi==i21) //字體顏色</p><p> { editor.setForeground(Color.red); }</p><p> if(mi==i22)</p><p> {editor.setForeground(Color.b
68、lue);}</p><p> if(mi==i23)</p><p> {editor.setForeground(Color.green);}</p><p> if(mi==about) //幫助菜單的關(guān)于</p><p><b> {</b></p>&l
69、t;p> String message = "----記事本----"</p><p> + "由梁**指導(dǎo),***、**、**共同完成\n感謝您的使用!";</p><p> JOptionPane.showMessageDialog(JM4.this, message, "關(guān)于...",JOptionPane.PL
70、AIN_MESSAGE);</p><p><b> }</b></p><p> /******彈出菜單********/</p><p> if(mi==item1) //復(fù)制 </p><p> {editor.copy();}</p><p>
71、 if(mi==item2) //剪切</p><p> {editor.cut();}</p><p> if(mi==item3) //粘貼</p><p> {editor.paste();}</p><p><b> }</b></p><
72、;p> 4.3.4 編輯區(qū)的鼠標(biāo)事件事件處理</p><p> /******編輯區(qū)的鼠標(biāo)事件*********/</p><p> public void mouseReleased(MouseEvent e)</p><p><b> {</b></p><p> if(e.isPopupTrigg
73、er())</p><p> pm.show(editor,e.getX(),e.getY());</p><p><b> }</b></p><p> public void mouseClicked(MouseEvent e){}</p><p> public void mouseEntered(Mous
74、eEvent e){}</p><p> public void mouseExited(MouseEvent e){}</p><p> public void mousePressed(MouseEvent e){}</p><p> public static void main (String[] args) { JM4 d=new JM4();}
75、}</p><p><b> 5 測(cè)試分析</b></p><p> (1)程序運(yùn)行界面如下:</p><p> (2)“文件”菜單的菜單項(xiàng):</p><p> (3)“編輯”菜單的菜單項(xiàng):</p><p> (4)打開文件及另存文件時(shí)的界面:</p><p>
76、 由于打開文件和另存文件都要尋找路徑,所以開始時(shí)界面相同。</p><p> (5)打開了某一個(gè)文本文件是的截圖:</p><p> (6)設(shè)置字體為黑體和顏色為藍(lán)色的截圖:</p><p> (7)用彈出菜單實(shí)現(xiàn)復(fù)制、剪切、粘貼、的截圖:</p><p> (8) 記事本關(guān)閉、退出或新建時(shí)的截圖:</p><p&
77、gt; 當(dāng)文件發(fā)生了剪切、刪除、粘貼等操作,或者在編輯區(qū)中輸入了字符,即文件進(jìn)行了修改,當(dāng)點(diǎn)擊“文件”菜單中的“退出”“、新建”項(xiàng)或者點(diǎn)擊了窗口的關(guān)閉按鈕時(shí),就會(huì)彈出一個(gè)“保存文件?”的對(duì)話框。如果文件沒有發(fā)生修改,關(guān)閉或者退出時(shí),直接關(guān)閉了記事本程序。由于其他的操作在截圖里很難發(fā)現(xiàn)什么變化,所以只展示了上面的截圖。</p><p><b> 6 課程設(shè)計(jì)總結(jié)</b></p>
78、<p><b> 6.1 設(shè)計(jì)體會(huì)</b></p><p><b> 6.2 致謝</b></p><p><b> 參考文獻(xiàn)</b></p><p> [1] 孫全黨,王吳迪,趙楓朝.Java程序設(shè)計(jì)應(yīng)用教程[M].北京:電子工業(yè)出版社,2006</p><
79、p> [2] 雷之宇.Java項(xiàng)目開發(fā)實(shí)踐——網(wǎng)絡(luò)篇[M].北京:中國(guó)鐵道出版社,2005</p><p> [3] 趙玉陽(yáng).Java從入門到精通[M].北京:清華大學(xué)出版社,2006 </p><p> [4] 李龍怡.Java編程實(shí)例講解[M].北京:高等教育出版社,2005</p><p> [5] 李尊朝,蘇軍.Java語(yǔ)言程序設(shè)計(jì)[M].北京
80、:中國(guó)鐵道出版社,2009</p><p><b> 附錄(源程序清單)</b></p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import javax.swing.*;</p><p> i
81、mport java.io.*; </p><p> public class JM extends JFrame</p><p><b> { </b></p><p> JMenuBar mb=new JMenuBar(); //定義一個(gè)菜單項(xiàng)</p><p> /******定義各個(gè)菜單及其菜單項(xiàng)***
82、***/</p><p> JMenu m1=new JMenu("文件(F)");</p><p> JMenuItem n=new JMenuItem("新建");</p><p> JMenuItem open=new JMenuItem("打開(O)... Ctrl+O");</p>
83、;<p> JMenuItem save=new JMenuItem("保存(S)... Ctrl+S");</p><p> JMenuItem save_as=new JMenuItem("另存為(A)...Ctrl+A");</p><p> JMenuItem exit=new JMenuItem("退出&quo
84、t;);</p><p> JMenu m2=new JMenu("編輯(E)");</p><p> JMenuItem copy=new JMenuItem("復(fù)制(C) Ctrl+C");</p><p> JMenuItem cut=new JMenuItem("剪切(X) Ctrl+X");
85、</p><p> JMenuItem paste=new JMenuItem("粘貼(P) Ctrl+P");</p><p> JMenu m3=new JMenu("格式(O)");</p><p> JMenu f1=new JMenu("字體(F)");</p><p&
86、gt; JMenuItem i11=new JMenuItem("宋體");</p><p> JMenuItem i12=new JMenuItem("楷體");</p><p> JMenuItem i13=new JMenuItem("黑體");</p><p> JMenu color=ne
87、w JMenu("顏色(C)");</p><p> JMenuItem i21=new JMenuItem("紅");</p><p> JMenuItem i22=new JMenuItem("藍(lán)"); </p><p> JMenuItem i23=new JMenuItem("綠&q
88、uot;);</p><p> JMenu m4=new JMenu("幫助(H)");</p><p> JMenuItem about=new JMenuItem("關(guān)于");</p><p> /*****定義彈出菜單及其菜單項(xiàng)*****/</p><p> JPopupMenu pm=n
89、ew JPopupMenu();</p><p> JMenuItem item1=new JMenuItem("復(fù)制");</p><p> JMenuItem item2=new JMenuItem("剪切");</p><p> JMenuItem item3=new JMenuItem("粘貼"
90、;);</p><p> /***********編輯區(qū)**********/ </p><p><b> String s;</b></p><p> Container c;</p><p> JTextArea editor=new JTextArea(s);</p><p> F
91、ont t=new Font("sanserif",Font.PLAIN,12);</p><p><b> JM()</b></p><p><b> {</b></p><p> super("記事本");</p><p> setSize(500
92、,400);</p><p> try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}</p><p> catch(Exception e){System.err.println("不能設(shè)置外觀的原因;"+e);}</p><p> c = get
93、ContentPane();</p><p> c.add(new JScrollPane(editor));</p><p> addFileMenu();</p><p> addEditMenu();</p><p> addFormMenu();</p><p> addHelpMenu();<
94、/p><p> addJMenuBar();</p><p> addJPopupMenu();</p><p> setJMenuBar(mb);</p><p> setVisible(true);</p><p> setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
95、;</p><p><b> }</b></p><p> private void addFileMenu()</p><p><b> {</b></p><p> m1.add(n);</p><p> m1.add(open);</p><
96、;p> m1.add(save);</p><p> m1.add(save_as);</p><p> m1.addSeparator();</p><p> m1.add(exit);</p><p> m1.setFont(t);</p><p><b> }</b><
97、;/p><p> private void addEditMenu()</p><p><b> {</b></p><p> m2.add(copy);</p><p> m2.add(cut);</p><p> m2.addSeparator();</p><p&g
98、t; m2.add(paste);</p><p> m2.setFont(t);</p><p><b> }</b></p><p> private void addFormMenu()</p><p><b> {</b></p><p> m3.add(
99、f1);</p><p> m3.add(color);</p><p> m3.setFont(t);</p><p> f1.add(i11);</p><p> f1.add(i12);</p><p> f1.add(i13);</p><p> color.add(i21)
100、;</p><p> color.add(i22);</p><p> color.add(i23);</p><p><b> }</b></p><p> private void addHelpMenu()</p><p><b> {</b></p&g
101、t;<p> m4.add(about);</p><p> m4.setFont(t);</p><p><b> }</b></p><p> private void addJMenuBar()</p><p><b> {</b></p><p&g
102、t; mb.add(m1);</p><p> mb.add(m2);</p><p> mb.add(m3);</p><p> mb.add(m4);</p><p> mb.setBackground(Color.cyan);</p><p><b> }</b></p&g
103、t;<p> private void addJPopupMenu()</p><p><b> {</b></p><p> editor.add(pm);</p><p> pm.add(item1);</p><p> pm.add(item2);</p><p>
104、 pm.add(item3);</p><p><b> }</b></p><p> public static void main(String arg[]){new JM();}</p><p><b> }</b></p><p> import java.io.*;</p&g
105、t;<p> import java.awt.*;</p><p> import javax.swing.*;</p><p> import java.awt.event.*;</p><p> import java.awt.Font.*;</p><p> public class JM4 extends JM
106、 implements ActionListener,MouseListener</p><p><b> { </b></p><p> int flag=0;</p><p> public JM4()</p><p><b> {</b></p><p> /
107、**********監(jiān)聽器接口**********/</p><p> n.addActionListener(this);</p><p> open.addActionListener(this);</p><p> save.addActionListener(this);</p><p> save_as.addActionL
108、istener(this);</p><p> exit.addActionListener(this);</p><p> copy.addActionListener(this);</p><p> cut.addActionListener(this);</p><p> paste.addActionListener(this
109、);</p><p> i11.addActionListener(this);</p><p> i12.addActionListener(this);</p><p> i13.addActionListener(this);</p><p> i21.addActionListener(this);</p>&l
110、t;p> i22.addActionListener(this);</p><p> i23.addActionListener(this);</p><p> about.addActionListener(this);</p><p> item1.addActionListener(this);</p><p> ite
111、m2.addActionListener(this);</p><p> item3.addActionListener(this);</p><p> editor.addMouseListener(this);</p><p> addWindowListener(new windowListener());</p><p> /
112、***************編輯區(qū)鍵盤事件******************/</p><p> editor.addKeyListener( new KeyAdapter()</p><p> {public void keyTyped(KeyEvent e){flag=1;}});</p><p><b> } </b></
113、p><p> /**************窗口監(jiān)聽器**************/ </p><p> class windowListener extends WindowAdapter</p><p> { </p><p> public void windowClosing(Wi
114、ndowEvent e)</p><p><b> { </b></p><p> if(flag==0)System.exit(0);</p><p> else close();</p><p><b> }</b></p><p><b> }
115、 </b></p><p> /***************菜單項(xiàng)監(jiān)聽器****************/</p><p> public void actionPerformed(ActionEvent e)</p><p><b> {</b></p><p> Font f2=edito
116、r.getFont();</p><p> JMenuItem mi=(JMenuItem) e.getSource();</p><p> if(mi==n) //新建</p><p><b> { </b></p><p> if(flag==0) edito
117、r.setText("");</p><p> else close2(); </p><p><b> }</b></p><p> if(mi==open) //打開</p><p> {loadFile();}</p
118、><p> if(mi==save||mi==save_as) //保存和另存為</p><p> {saveFile();}</p><p> if(mi==exit) //退出</p><p> {if(flag==0)System.exit(0); close();}<
119、;/p><p> if(mi==copy) //復(fù)制</p><p> {editor.copy();}</p><p> if(mi==cut) //剪切</p><p> {editor.cut();}</p><p>
120、 if(mi==paste) //粘貼</p><p> {editor.paste();}</p><p> if(mi==i11) //字體設(shè)置</p><p> {editor.setFont(new java.awt.Font("宋體",jav
121、a.awt.Font.PLAIN,f2.getSize()));}</p><p> if(mi==i12)</p><p> {editor.setFont(new java.awt.Font("楷體",java.awt.Font.PLAIN,f2.getSize()));}</p><p> if(mi==i13)</p>
122、<p> {editor.setFont(new java.awt.Font("黑體",java.awt.Font.PLAIN,f2.getSize()));}</p><p> if(mi==i21) //字體顏色</p><p> { editor.setForeground(Color.red); }<
123、;/p><p> if(mi==i22)</p><p> {editor.setForeground(Color.blue);}</p><p> if(mi==i23)</p><p> {editor.setForeground(Color.green);}</p><p> if(mi==about)
124、 //幫助菜單的關(guān)于</p><p><b> {</b></p><p> String message = "----記事本----"</p><p> + "由**老師指導(dǎo),***、***、**共同完成\n感謝您的使用!";</p><p&g
125、t; JOptionPane.showMessageDialog(JM4.this, message, "關(guān)于...",JOptionPane.PLAIN_MESSAGE);</p><p><b> }</b></p><p> /******彈出菜單********/</p><p> if(mi==item1
126、) //復(fù)制 </p><p> {editor.copy();}</p><p> if(mi==item2) //剪切</p><p> {editor.cut();}</p><p> if(mi==item3) //粘貼</p>&
127、lt;p> {editor.paste();}</p><p><b> }</b></p><p> /**********將文件讀入到編輯區(qū)***********/</p><p> void loadFile()</p><p><b> {</b></p>&l
128、t;p> JFileChooser fc=new JFileChooser();</p><p> int r=fc.showOpenDialog(this);</p><p> if(r==JFileChooser.APPROVE_OPTION)</p><p><b> {</b></p><p>
129、File file=fc.getSelectedFile();</p><p> try{editor.read(new FileReader(file),null);}</p><p> catch(IOException e){}</p><p><b> }</b></p><p><b> }&
130、lt;/b></p><p> /***********創(chuàng)建文件寫入器*************/</p><p> void saveFile()</p><p><b> {</b></p><p> JFileChooser fc=new JFileChooser();</p><
131、p> int r=fc.showSaveDialog(this);</p><p> if(r==JFileChooser.APPROVE_OPTION)</p><p><b> {</b></p><p> File file=fc.getSelectedFile();</p><p> try{ed
132、itor.write(new FileWriter(file));}</p><p> catch(IOException e){}</p><p><b> }</b></p><p><b> }</b></p><p> /*********文件的關(guān)閉或退出************/&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的記事本程序課程設(shè)計(jì)
- 基于java的記事本程序課程設(shè)計(jì)
- java記事本程序課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--- 記事本程序設(shè)計(jì)
- java課程設(shè)計(jì)--簡(jiǎn)單記事本程序的設(shè)計(jì)
- java語(yǔ)言課程設(shè)計(jì)---記事本程序設(shè)計(jì)
- java課程設(shè)計(jì)--日歷記事本
- java課程設(shè)計(jì)日歷記事本
- java課程設(shè)計(jì)--日歷記事本
- 日歷記事本-java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)
- java課程設(shè)計(jì)---基于java的記事本軟件設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)論文
- java課程設(shè)計(jì)--編寫一個(gè)記事本程序
- java課程設(shè)計(jì)-編寫一個(gè)記事本程序
- java課程設(shè)計(jì)記事本(含代碼)1
- java課程設(shè)計(jì)報(bào)告--實(shí)現(xiàn)記事本功能
- java課程設(shè)計(jì)---設(shè)計(jì)一個(gè)記事本
- java記事本課程設(shè)計(jì)
- vb課程設(shè)計(jì)--記事本程序的編寫
評(píng)論
0/150
提交評(píng)論