java記事本課程設(shè)計報告_第1頁
java記事本課程設(shè)計報告_第2頁
java記事本課程設(shè)計報告_第3頁
java記事本課程設(shè)計報告_第4頁
java記事本課程設(shè)計報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.課程設(shè)計報告(本科)課程: 面向?qū)ο蟪绦蛟O(shè)計學(xué)號:1110421122 1110421086 姓名: 潘雨勝 邵陽班級: 網(wǎng)絡(luò)工程2班教師: 錢田芬時間: 2013.11.20-2013.12.20計算機科學(xué)與技術(shù)系;設(shè)計名稱:編寫一個記事本程序設(shè)計內(nèi)容、目的與要求:1實驗內(nèi)容1.1編寫一個簡單記事本程序;1.2能實現(xiàn)編輯、保存、另存為、查找替換等功能2實驗要求2.1用圖形用戶界面實現(xiàn);2.2用文件輸入輸出流編譯。2.3實現(xiàn)文件和編輯菜單里的功能;3實驗?zāi)康?.1能夠?qū)崿F(xiàn)基本的文件錄入即新建事件的功能;3.2能夠?qū)崿F(xiàn)事件的保存和另存功能以及事件的刪除;3.3能夠?qū)崿F(xiàn)事件的查找和替換功能,保證

2、程序的可修改性;3.4能夠?qū)崿F(xiàn)事件內(nèi)容的復(fù)制,粘貼和拷貝功能;3.5最后是關(guān)于對改程序的幫助即改程序的介紹。計劃與進度安排:2013.11.20-2013.11.30 對題目有基本的思路 怎樣去編譯程序,查閱資料,驚醒初步的準(zhǔn)備工作;2013.12.01-2013.12.10 編譯程序并上機調(diào)試運行,看是否能正確運行,并將有用的實驗結(jié)果截圖保存,編寫文檔,將程序每部步實現(xiàn)的功能,用電子文檔的形式表達出來,并且用圖文并茂的方式表現(xiàn)出自己的每一步設(shè)計思路;2013.12.10-2013.12.20 將編譯好的源程序和電子文檔仔細(xì)查看,再次運行檢查是否有誤,然后再將電子文檔打印成冊,將程序以及電子文

3、檔讓驗收老師驗收,如果有誤還需再次修改。 設(shè)計過程、步驟(可加頁):4需求分析4.1系統(tǒng)概述;該報告中的程序是使用Java程序編寫,能夠進行輸入文字操作,并具有新建文件,打開文件,保存文件,退出,復(fù)制,粘貼,剪切等功能,不同之處是本程序能夠?qū)ξ淖值念伾M行設(shè)置。該程序主要用到了Java swing和事件監(jiān)聽等。4.2功能需求描述; 本程序要構(gòu)建的記事本程序參照了Windows操作系統(tǒng)的記事本工具,其功能有以下幾個方面:(1).菜單中有“文件”,“編輯”,“關(guān)于”三個主菜單。(2)“文件”有“新建”“打開”“保存”“另存為”“退出”五個子菜單:分別用于新建文件,打開文件,保存文件,另外保存文件,

4、退出記事本。(3)“編輯”中有“剪切”“復(fù)制”“粘貼”“全選”“查找”“替換”六個字菜單:用于剪切文字,復(fù)制文字,粘貼文字,全部選中。增加了“查找”“替換”子菜單來對文字進行查找和替換。(4)“關(guān)于”菜單中有關(guān)于記事本程序的制作日期,作者等信息。4.3總體設(shè)計 開發(fā)與設(shè)計的總體思想: 在本程序中,設(shè)計了一個菜單欄和文本內(nèi)容區(qū)。設(shè)計過程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用來制作菜單,菜單包括“文件”“編輯”“關(guān)于”。JTextArea主要用來輸入文本。 系統(tǒng)模塊結(jié)構(gòu)圖 模塊設(shè)計 系統(tǒng)模塊流程圖 5詳細(xì)設(shè)計 5.1主界面模塊首先創(chuàng)

5、建一個名為Notebook的類并繼承Frame類實現(xiàn)監(jiān)聽接口作為最底層的容器(具體過程在“4.3.2自定義類及接口說明”作說明)。菜單欄中有“文件”、“編輯”、“幫助”三項菜單,分別添加的相應(yīng)的項,各實現(xiàn)其功能。 5.1.1主界面主要代碼public Notebook()this.setTitle("記事本");contianer=this.getContentPane();contianer.setLayout(new BorderLayout();jta=new JTextArea();contianer.add(jta);JMenuBar mb=new JMenuBa

6、r();buildMainMenu(mb);this.setJMenuBar(mb);this.setVisible(true);this.setSize(650, 450); 5.2文件界面5.2.1文件界面包括新建(new)、打開(open)、保存(save)和另存(saves)為退出(exit)等功能,通過給各功能初始化容器、初始化組件、設(shè)置事件監(jiān)聽器,下面有其實現(xiàn)方法: void buildMainMenu(JMenuBar mb) JMenu fileMenu=new JMenu("文件(F)");fileMenu.setMnemonic(KeyEvent.VK_

7、F);JMenuItem newMenuItem=new JMenuItem("新建");fileMenu.add(newMenuItem);JMenuItem openMenuItem=new JMenuItem("打開");openMenuItem.setMnemonic(KeyEvent.VK_O);openMenuItem.addActionListener(new OpenActionListener();fileMenu.add(openMenuItem);JMenuItem saveMenuItem=new JMenuItem("

8、保存");saveMenuItem.setMnemonic(KeyEvent.VK_S);saveMenuItem.addActionListener(new SaveActionListener();fileMenu.add(saveMenuItem);JMenuItem saveasMenuItem=new JMenuItem("另存為");saveasMenuItem.setMnemonic(KeyEvent.VK_A);saveasMenuItem.addActionListener(new SaveActionListener();fileMenu.ad

9、d(saveasMenuItem);JMenuItem exitMenuItem=new JMenuItem("退出");exitMenuItem.setMnemonic(KeyEvent.VK_E); 5.2.2各部分截圖; 打開界面截圖; 保存部分截圖; 退出部分截圖 5.2.3各部分實現(xiàn)的功能框圖 保存) 新建5.3 編輯界面 5.3.1主要有剪切、復(fù)制、粘貼、查找和替換功能,通過cut,copy,paste,serach和ache實現(xiàn)各功能,然后對每個功能初始化容器、初始化組件、設(shè)置事件監(jiān)聽器保證功能的實現(xiàn),下面是實現(xiàn)各功能的主要代碼:exitMenuItem.ad

10、dActionListener(new ExitActionListener();fileMenu.add(exitMenuItem);mb.add(fileMenu);JMenu editMenu=new JMenu("編輯(E)");editMenu.setMnemonic(KeyEvent.VK_E);JMenuItem cutMenuItem=new JMenuItem("剪切");cutMenuItem.setMnemonic(KeyEvent.VK_T);cutMenuItem.setAccelerator(KeyStroke.getKeyS

11、troke(KeyEvent.VK_X, ActionEvent.CTRL_MASK);cutMenuItem.addActionListener(new CutActionListener();editMenu.add(cutMenuItem);JMenuItem copyMenuItem=new JMenuItem("復(fù)制");copyMenuItem.setMnemonic(KeyEvent.VK_C);copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_

12、MASK);copyMenuItem.addActionListener(new CopyActionListener();editMenu.add(copyMenuItem);JMenuItem pasteMenuItem=new JMenuItem("粘貼");pasteMenuItem.setMnemonic(KeyEvent.VK_P);pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK);pasteMenuItem.addActionLis

13、tener(new PasteActionListener();editMenu.add(pasteMenuItem);JMenuItem sallMenuItem=new JMenuItem("全選");sallMenuItem.setMnemonic(KeyEvent.VK_A);sallMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK);sallMenuItem.addActionListener(new SallActionListener();ed

14、itMenu.add(sallMenuItem);JMenuItem searchMenuItem=new JMenuItem("查找");searchMenuItem.setMnemonic(KeyEvent.VK_S);searchMenuItem.addActionListener(new SearchActionListener();editMenu.add(searchMenuItem);JMenuItem chanMenuItem=new JMenuItem("替換");chanMenuItem.setMnemonic(KeyEvent.VK

15、_G);chanMenuItem.addActionListener(new ChanActionListener();editMenu.add(chanMenuItem);mb.add(editMenu); 5.3.2截圖; 剪切 查找替換5.3.3各功能的實現(xiàn)框圖; 剪切粘貼刪除 5.4幫助界面 5.4.1幫助界面主要是對該程序的介紹,以及設(shè)計人員的介紹,通過about方法來實現(xiàn)的,下面是主要的代碼:JMenu helpMenu=new JMenu("幫助(H)");helpMenu.setMnemonic(KeyEvent.V

16、K_H);JMenuItem abouthMenuItem=new JMenuItem("關(guān)于記事本");abouthMenuItem.setMnemonic(KeyEvent.VK_A);abouthMenuItem.addActionListener(new AbouthActionListener();helpMenu.add(abouthMenuItem);mb.add(helpMenu); 5.4.2幫助部分截圖: 6、原代碼import java.awt.*;import java.awt.event.ActionEvent;import java.awt.ev

17、ent.ActionListener;import java.awt.event.KeyEvent;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import javax.swing.*;public class Notebook extends JFrame Container contianer;JFileChooser fc=new JFileChooser(); File file=null; JTextArea jta; private MyFindDialog fd = new MyF

18、indDialog(this, jta);public Notebook()this.setTitle("記事本");contianer=this.getContentPane();contianer.setLayout(new BorderLayout();jta=new JTextArea();contianer.add(jta);JMenuBar mb=new JMenuBar();buildMainMenu(mb);this.setJMenuBar(mb);this.setVisible(true);this.setSize(650, 450); void buil

19、dMainMenu(JMenuBar mb) JMenu fileMenu=new JMenu("文件(F)");fileMenu.setMnemonic(KeyEvent.VK_F);JMenuItem newMenuItem=new JMenuItem("新建");fileMenu.add(newMenuItem);JMenuItem openMenuItem=new JMenuItem("打開");openMenuItem.setMnemonic(KeyEvent.VK_O);openMenuItem.addActionList

20、ener(new OpenActionListener();fileMenu.add(openMenuItem);JMenuItem saveMenuItem=new JMenuItem("保存");saveMenuItem.setMnemonic(KeyEvent.VK_S);saveMenuItem.addActionListener(new SaveActionListener();fileMenu.add(saveMenuItem);JMenuItem saveasMenuItem=new JMenuItem("另存為");saveasMenuI

21、tem.setMnemonic(KeyEvent.VK_A);saveasMenuItem.addActionListener(new SaveActionListener();fileMenu.add(saveasMenuItem);JMenuItem exitMenuItem=new JMenuItem("退出");exitMenuItem.setMnemonic(KeyEvent.VK_E);exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E ,ActionEvent.CTRL_MASK);

22、exitMenuItem.addActionListener(new ExitActionListener();fileMenu.add(exitMenuItem);mb.add(fileMenu);JMenu editMenu=new JMenu("編輯(E)");editMenu.setMnemonic(KeyEvent.VK_E);JMenuItem cutMenuItem=new JMenuItem("剪切");cutMenuItem.setMnemonic(KeyEvent.VK_T);cutMenuItem.setAccelerator(Ke

23、yStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK);cutMenuItem.addActionListener(new CutActionListener();editMenu.add(cutMenuItem);JMenuItem copyMenuItem=new JMenuItem("復(fù)制");copyMenuItem.setMnemonic(KeyEvent.VK_C);copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, Ac

24、tionEvent.CTRL_MASK);copyMenuItem.addActionListener(new CopyActionListener();editMenu.add(copyMenuItem);JMenuItem pasteMenuItem=new JMenuItem("粘貼");pasteMenuItem.setMnemonic(KeyEvent.VK_P);pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK);pasteMenuIt

25、em.addActionListener(new PasteActionListener();editMenu.add(pasteMenuItem);JMenuItem sallMenuItem=new JMenuItem("全選");sallMenuItem.setMnemonic(KeyEvent.VK_A);sallMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK);sallMenuItem.addActionListener(new SallActi

26、onListener();editMenu.add(sallMenuItem);JMenuItem searchMenuItem=new JMenuItem("查找");searchMenuItem.setMnemonic(KeyEvent.VK_S);searchMenuItem.addActionListener(new SearchActionListener();editMenu.add(searchMenuItem);JMenuItem chanMenuItem=new JMenuItem("替換");chanMenuItem.setMnemo

27、nic(KeyEvent.VK_G);chanMenuItem.addActionListener(new ChanActionListener();editMenu.add(chanMenuItem);mb.add(editMenu);JMenu helpMenu=new JMenu("幫助(H)");helpMenu.setMnemonic(KeyEvent.VK_H);JMenuItem abouthMenuItem=new JMenuItem("關(guān)于記事本");abouthMenuItem.setMnemonic(KeyEvent.VK_A);a

28、bouthMenuItem.addActionListener(new AbouthActionListener();helpMenu.add(abouthMenuItem);mb.add(helpMenu); class MyFindDialog extends JDialog implements ActionListener private Label l1 = new Label("查找字符串"); private Label l2 = new Label("替換字符串"); private TextField tf1 = new TextFie

29、ld(10); private TextField tf2 = new TextField(10); private Button b1 = new Button("向下查找"); private Button b2 = new Button("替換"); public MyFindDialog(Frame owner, JTextArea jta) super(owner, "查找", false); setLayout(null); l1.setBounds(10, 30, 80, 20); l2.setBounds(10, 70

30、, 80, 20); tf1.setBounds(90, 30, 90, 20); tf2.setBounds(90, 70, 80, 20); b1.setBounds(190, 30, 80, 20); b2.setBounds(190, 70, 80, 20); add(l1); add(l2); add(tf1); add(tf2); add(b1); add(b2); setResizable(false); b1.addActionListener(this); b2.addActionListener(this); public void showFind() setTitle(

31、"查找"); setSize(280, 300); setVisible(true); public void showReplace() setTitle("查找替換"); setSize(280,300); setVisible(true); private void find() String content = jta.getText(); String str = tf1.getText(); int pp=jta.getCaretPosition(); int end=content.length(); String text=content

32、.substring(pp,end); if(str!=null&&!str.equals("") int start=text.indexOf(str); if(start>=0) start=start+pp; jta.setSelectionStart(start); jta.setSelectionEnd(start+str.length(); else javax.swing.JOptionPane.showMessageDialog(this,"成功完成向下查找!","查找完畢",JOptionPan

33、e.OK_OPTION | JOptionPane.INFORMATION_MESSAGE); private void replace() String str2 = tf2.getText(); find(); jta.replaceRange(str2, jta.getSelectionStart(),jta.getSelectionEnd(); public void actionPerformed(ActionEvent e) if (e.getSource() = b1) find(); else if (e.getSource() = b2) replace(); class S

34、aveActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) if(file!=null) fc.setSelectedFile(file); int returnVal=fc.showSaveDialog(Notebook.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=fc.getSelectedFile(); saving(); void saving() try FileWriter Writef=new FileWr

35、iter(file); Writef.write(jta.getText(); Writef.close(); catch(Exception e)e.printStackTrace(); class OpenActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) if(file !=null)fc.setSelectedFile(file); int returnVal=fc.showOpenDialog(Notebook.this); if(returnVal=JFileChoos

36、er.APPROVE_OPTION) file=fc.getSelectedFile(); unfold(); void unfold() try FileReader Readf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); jta.setText(new String(buffer); catch(Exception e)e.printStackTrace(); class ExitActionListen

37、er implements ActionListenerpublic void actionPerformed(ActionEvent e) setVisible(false); dispose(); System.exit(0);class CutActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.cut();class CopyActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.copy();class PasteActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.paste();class SallActionListener impleme

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論