版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 設(shè)計內(nèi)容和要求</b></p><p> 設(shè)計一個具有GUI界面的記事本含有簡單的文字編輯功能如剪切、復(fù)制、粘貼、刪除還能實現(xiàn)保存、另存為、設(shè)置字體和顏色等功能。</p><p> 本程序要構(gòu)建的記事本程序參照了Windows操作系統(tǒng)的記事本工具其功能有以下幾個方面 (1)、菜單中有“文件”、“編輯”、“格式”、“幫助”四
2、個主菜單 (2)、“文件”有“新建”、“打開”、“保存”、“另存為”、“退出”分別用于新建文件打開文件保存文件另存文件退出記事本。 (3)、“編輯”有“剪切”、“復(fù)制”、“粘貼”三個子菜單用于剪切文字復(fù)制文字粘貼文字刪除文字。 (4)、“格式”中有“字體”、“顏色”兩個子菜單用于設(shè)置文字的字體而和顏色字體有“宋體”、“楷體”、“黑體”顏色有“紅”、“藍(lán)”、“綠”。 (5)、“幫助”菜單中有“關(guān)于”的子菜單用于描
3、述記事本程序的相關(guān)信息。 (6)、還有彈出菜單也能實現(xiàn)“剪切”、“復(fù)制”、“粘貼”三個子菜單的功能。</p><p><b> 系統(tǒng)分析與概要設(shè)計</b></p><p><b> 類名: JM </b></p><p> (1)作用: 主類 </p><p> (2)繼承的父類:
4、 JFrame類</p><p> (3)成員變量說明 </p><p> JMenuBar mb=new JMenuBar();</p><p> JMenu m1=new JMenu("文件(F)"); </p><p> JMenuItem n=new JMenuItem("新建"
5、); </p><p> JMenuItem open=new JMenuItem("打開(O)... Ctrl+O"); JMenuItem save=new JMenuItem("保存(S)... Ctrl+S"); JMenuItem save_as=new JMenuItem("另存為(A)...Ctrl+A"); JMenuI
6、tem exit=new JMenuItem("退出"); </p><p> JMenu m2=new JMenu("編輯(E)"); </p><p> JMenuItem copy=new JMenuItem("復(fù)制(C) Ctrl+C"); JMenuItem cut=new JMenuItem(&
7、quot;剪切(X) Ctrl+X"); JMenuItem paste=new JMenuItem("粘貼(P) Ctrl+P"); </p><p> JMenu m3=new JMenu("格式(O)"); </p><p> JMenu f1=new JMenu("字體(F)"); <
8、;/p><p> JMenuItem i11=new JMenuItem("宋體"); </p><p> JMenuItem i12=new JMenuItem("楷體"); </p><p> JMenuItem i13=new JMenuItem("黑體"); </p>&
9、lt;p> JMenu color=new JMenu("顏色(C)"); </p><p> JMenuItem i21=new JMenuItem("紅"); </p><p> JMenuItem i22=new JMenuItem("藍(lán)"); </p><p> JMen
10、uItem i23=new JMenuItem("綠"); </p><p> JMenu m4=new JMenu("幫助()"); </p><p> JMenuItem about=new JMenuItem("關(guān)于"); </p><p> JPopupMenu pm=new
11、 JPopupMenu(); </p><p> JMenuItem item1=new JMenuItem("復(fù)制"); </p><p> JMenuItem item2=new JMenuItem("剪切"); </p><p> JMenuItem item3=new JMenuItem("
12、粘貼"); </p><p><b> String s;</b></p><p> Container c; </p><p> JTextArea editor=new JTextArea(s); </p><p> (4)主要方法說明 </p><p>
13、 JM( )方法創(chuàng)建一個窗口并設(shè)置窗口的相應(yīng)參數(shù)以及把各個項目加到窗上 private void addJMenuBar( )方法把各個菜單添加到菜單棒上 private void addFileMenu( ) private void addEditMenu( ) private void addFormMenu( ) private void addHelpMenu( ) private void addJPopup
14、Menu( )各個方法則把相應(yīng)的菜單項添加到各自的“文件”、“編輯”、“格式”、“幫助”菜單上及彈出菜單上。</p><p> 2、類名: JM4 </p><p> (1)作用: 主類 </p><p> (2)繼承的父類: JM類</p><p> (3)主要成員方法說明 </p><p>
15、 編輯區(qū)鍵盤事件:KeyListener類 如果記事本的編輯區(qū)內(nèi)用鍵盤輸入了字符,就能夠被程序監(jiān)聽: </p><p> editor.addKeyListener( new KeyAdapter() </p><p> {public void keyTyped(KeyEvent e){flag=1;}}); </p><p> 窗口的事件監(jiān)聽:
16、windowListener類; </p><p> class windowListener extends WindowAdapter </p><p> { </p><p> public void windowClosing(WindowEvent e) </p><p&
17、gt;<b> { </b></p><p> if(flag==0)System.exit(0); </p><p> else close(); </p><p><b> } </b></p><p><b> } </b&g
18、t;</p><p> 菜單項的事件監(jiān)聽:ActionListener類; </p><p> public void actionPerformed(ActionEvent e) </p><p><b> { </b></p><p> Font f2=editor.getFont();
19、 </p><p> JMenuItem mi=(JMenuItem) e.getSource();</p><p><b> ……</b></p><p><b> }</b></p><p><b> 詳細(xì)設(shè)計和編碼</b></p><p&g
20、t;<b> 總體功能圖</b></p><p><b> 類的定義及關(guān)系</b></p><p><b> 3、源代碼</b></p><p> import java.awt.*;</p><p> import java.awt.event.*; </p&
21、gt;<p> import javax.swing.*;</p><p> import java.io.*; </p><p> public class JM extends JFrame </p><p> { JMenuBar mb=new JMenuBar(); </p><p> JMenu m
22、1=new JMenu("文件(F)"); </p><p> JMenuItem n=new JMenuItem("新建"); </p><p> JMenuItem open=new JMenuItem("打開(O)... Ctrl+O"); </p><p> JMenuItem s
23、ave=new JMenuItem("保存(S)... Ctrl+S"); </p><p> JMenuItem save_as=new JMenuItem("另存為(A)...Ctrl+A"); JMenuItem exit=new JMenuItem("退出");</p><p> JMenu m2=new JM
24、enu("編輯(E)"); </p><p> JMenuItem copy=new JMenuItem("復(fù)制(C) Ctrl+C"); </p><p> JMenuItem cut=new JMenuItem("剪切(X) Ctrl+X"); </p><p> JMenuItem
25、 paste=new JMenuItem("粘貼(P) Ctrl+P"); </p><p> JMenu m3=new JMenu("格式(O)"); </p><p> JMenu f1=new JMenu("字體(F)"); </p><p> JMenuItem i11=new
26、JMenuItem("宋體"); </p><p> JMenuItem i12=new JMenuItem("楷體"); </p><p> JMenuItem i13=new JMenuItem("黑體"); </p><p> JMenu color=new JMenu("
27、顏色(C)"); </p><p> JMenuItem i21=new JMenuItem("紅");</p><p> JMenuItem i22=new JMenuItem("藍(lán)");</p><p> JMenuItem i23=new JMenuItem("綠"); </
28、p><p> JMenu m4=new JMenu("幫助()"); </p><p> JMenuItem about=new JMenuItem("關(guān)于"); </p><p> JPopupMenu pm=new JPopupMenu(); </p><p> JMenuItem
29、item1=new JMenuItem("復(fù)制"); </p><p> JMenuItem item2=new JMenuItem("剪切"); </p><p> JMenuItem item3=new JMenuItem("粘貼"); </p><p> String s; &l
30、t;/p><p> Container c; </p><p> JTextArea editor=new JTextArea(s); </p><p> Font t=new Font("sanserif",Font.PLAIN,12); </p><p><b> JM()
31、</b></p><p> { super("記事本"); </p><p> setSize(500,400); </p><p> try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
32、 </p><p> catch(Exception e){System.err.println("不能設(shè)置外觀的原因"+e);} </p><p> c = getContentPane(); </p><p> c.add(new JScrollPane(editor)); </p>
33、<p> addFileMenu(); </p><p> addEditMenu(); </p><p> addFormMenu(); </p><p> addHelpMenu(); </p><p> addJMenuBar();</p><p> addJPopu
34、pMenu(); </p><p> setJMenuBar(mb); </p><p> setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } </p><p> private void addFi
35、leMenu() </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(); <
36、;/p><p> m1.add(exit); </p><p> m1.setFont(t); } </p><p> private void addEditMenu() </p><p> { m2.add(copy); </p><p> m2.add(cut); <
37、/p><p> m2.addSeparator(); </p><p> m2.add(paste); </p><p> m2.setFont(t); </p><p><b> } </b></p><p> private void addFormMenu()
38、 { </p><p> m3.add(f1); </p><p> m3.add(color); </p><p> m3.setFont(t);</p><p> f1.add(i11); </p><p> f1.add(i12); </p><p> f1
39、.add(i13); </p><p> color.add(i21); </p><p> color.add(i22); </p><p> color.add(i23); } </p><p> private void addHelpMenu() { </p><p>
40、; m4.add(about); </p><p> m4.setFont(t); } </p><p> private void addJMenuBar() { </p><p> mb.add(m1); </p><p> mb.add(m2); </p><p>
41、; mb.add(m3); </p><p> mb.add(m4); mb.setBackground(Color.cyan); } </p><p> private void addJPopupMenu() { </p><p> editor.add(pm); </p><p> pm.add(item1
42、); </p><p> pm.add(item2); </p><p> pm.add(item3); }</p><p> public static void main(String arg[]){</p><p> new JM();} </p><p><b> } </
43、b></p><p> public class JM4 extends JM implements ActionListener,MouseListener { </p><p> int flag=0; </p><p> public JM4() { </p><p> n.addActionListener(thi
44、s); </p><p> open.addActionListener(this); save.addActionListener(this); save_as.addActionListener(this); exit.addActionListener(this); copy.addActionListener(this); cut.addActionListener(this); paste.addAc
45、tionListener(this); i11.addActionListener(this); i12.addActionListener(this); i13.addActionListener(this); i21.addActionListener(this); i22.addActionListener(this); i23.addActionListener(this); about.addActionListener(th
46、is); item1.addActionListener(this); item2.addActionListener(this);</p><p> item3.addActionListener(this); editor.addMouseListener(this); </p><p> addWindowListener(new windowListener()); </
47、p><p> editor.addKeyListener( new KeyAdapter() {</p><p> public void keyTyped(KeyEvent e){flag=1;}}); </p><p><b> } </b></p><p> class windowListener ex
48、tends WindowAdapter { </p><p> public void windowClosing(WindowEvent e) { if(flag==0) System.exit(0)</p><p> else close(); } </p><p&
49、gt;<b> } </b></p><p> public void actionPerformed(ActionEvent e) { </p><p> Font f2=editor.getFont(); </p><p> JMenuItem mi=(JMenuItem)e.getSource();
50、 </p><p> if(mi==n) </p><p><b> { </b></p><p> if(flag==0) editor.setText(""); </p><p> else close2();
51、 } if(mi==open) </p><p> {loadFile();} </p><p> if(mi==save||mi==save_as) </p><p> {saveFile();} </p><p> if(mi==exit) &l
52、t;/p><p> { if(flag==0) System.exit(0); close();} if(mi==copy) </p><p> {editor.copy();} </p><p> if(mi==cut) </p><p> {editor
53、.cut();} </p><p> if(mi==paste) </p><p> {editor.paste();} </p><p> if(mi==i11) </p><p> {editor.setFont(new java.awt.F
54、ont("宋 體",java.awt.Font.PLAIN,f2.getSize()));} if(mi==i12) {editor.setFont(new java.awt.Font("楷 體",java.awt.Font.PLAIN,f2.getSize()));} if(mi==i13) {editor.setFont(new java.awt.Font("黑 體&
55、quot;,java.awt.Font.PLAIN,f2.getSize()));} if(mi==i21) { editor.setForeground(Color.red); }</p><p> if(mi==i22) {editor.setForeground(Color.blue);} if(mi==i23) {editor.setFor
56、eground(Color.green);} if(mi==about) </p><p> { String message = "----記事本----" + "由**老師指導(dǎo)***、***、**共同完成\n感謝您的使用!";</p><p> JOptionPane.showMessageDialo
57、g( </p><p> JM4.this, message, "關(guān)于...",JOptionPane.PLAIN_MESSAGE); </p><p><b> } </b></p><p> if(mi==item1
58、) </p><p> {editor.copy();} </p><p> if(mi==item2) </p><p> {editor.cut();} </p><p> if(mi==item3) </p><p> {ed
59、itor.paste();} </p><p><b> }</b></p><p> void loadFile() { </p><p> JFileChooser fc=new JFileChooser(); </p><p> int r=fc.showOpenDialog(this); </p&
60、gt;<p> if(r==JFileChooser.APPROVE_OPTION)</p><p><b> {</b></p><p> File file=fc.getSelectedFile(); </p><p> try{editor.read( new FileReader(file),null);}
61、 </p><p> catch(IOException e){} </p><p><b> } </b></p><p><b> }</b></p><p> void saveFile() { </p><p> JFileChooser fc=new
62、JFileChooser();</p><p> int r=fc.showSaveDialog(this);</p><p> if(r==JFileChooser.APPROVE_OPTION) </p><p> { File file=fc.getSelectedFile(); </p><p> try{edit
63、or.write(new FileWriter(file));} </p><p> catch(IOException e){} </p><p><b> } </b></p><p><b> } </b></p><p> void close(){
64、 </p><p> try{ int option = JOptionPane.showConfirmDialog( null, </p><p> 是否保存文件", "保存文件", </p><p> JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane
65、.WARNING_M</p><p> SSAGE, null); </p><p> switch(option) { </p><p> case JOptionPane.YES_OPTION:saveFile();break; </p><p> case JOptionPane.NO_OPTION:System.
66、exit(0);break; </p><p> case JOptionPane.CANCEL_OPTION: return ; }} </p><p> catch(Exception e){e.printStackTrace();}} </p><p> void close2(){ </p
67、><p> try{int option = JOptionPane.showConfirmDialog( null, "是否保存已有文件", "保存文件", </p><p> JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_ME</p><p> SSAG
68、E, null); </p><p> switch(option){ </p><p> case JOptionPane.YES_OPTION:saveFile();editor.setText("");break; </p><p> case JOptionPane
69、.NO_OPTION:editor.setText("");return;}} catch(Exception e){e.printStackTrace();}} </p><p> public void mouseReleased(MouseEvent e) { </p><p> if(e.isPopupTrigger()) pm.show
70、(editor,e.getX(),e.getY()); }</p><p> public void mouseClicked(MouseEvent e){}</p><p> public void mouseEntered(MouseEvent e){} </p><p> public void mouseExited(MouseEvent e)
71、{} </p><p> public void mousePressed(MouseEvent e){} </p><p> public static void main (String[] args) </p><p> { JM4 d=new JM4();} </p><p><b> }</b>
72、;</p><p><b> 測試結(jié)果</b></p><p> (1)程序運(yùn)行界面如下:</p><p> (2)“文件”菜單的菜單項:</p><p> (3)打開文件及另存文件時的界面:</p><p><b> </b></p><p
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java記事本課程設(shè)計
- java記事本課程設(shè)計報告
- java記事本課程設(shè)計報告
- 記事本課程設(shè)計報告
- java課程設(shè)計--日歷記事本
- java課程設(shè)計日歷記事本
- java課程設(shè)計--日歷記事本
- 日歷記事本-java課程設(shè)計
- 日歷記事本java課程設(shè)計
- 日歷記事本java課程設(shè)計論文
- java記事本程序課程設(shè)計報告
- java課程設(shè)計--- 記事本程序設(shè)計
- 基于java的記事本程序課程設(shè)計
- java課程設(shè)計記事本(含代碼)1
- java課程設(shè)計報告--實現(xiàn)記事本功能
- 基于java的記事本程序課程設(shè)計
- java課程設(shè)計---設(shè)計一個記事本
- java語言課程設(shè)計---記事本程序設(shè)計
- java課程設(shè)計---基于java的記事本軟件設(shè)計
- java課程設(shè)計--簡單記事本程序的設(shè)計
評論
0/150
提交評論