JAVA課程設(shè)計(jì)記事本(含代碼)1_第1頁(yè)
JAVA課程設(shè)計(jì)記事本(含代碼)1_第2頁(yè)
JAVA課程設(shè)計(jì)記事本(含代碼)1_第3頁(yè)
JAVA課程設(shè)計(jì)記事本(含代碼)1_第4頁(yè)
JAVA課程設(shè)計(jì)記事本(含代碼)1_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄第1章 引言11.1 背景11.2 課程設(shè)計(jì)內(nèi)容1第2章 記事本系統(tǒng)32.1 記事本概述32.2 記事本的任務(wù)及目的32.3 本章小結(jié)3第3章 記事本的設(shè)計(jì)43.1 系統(tǒng)需求分析43.2 系統(tǒng)開(kāi)發(fā)及運(yùn)行環(huán)境43.3記事本總體結(jié)構(gòu)(流程圖)53.4 記事本系統(tǒng)各模塊介紹53.5 本章小結(jié)6第4章 系統(tǒng)的具體實(shí)現(xiàn)74.1窗口設(shè)計(jì)74.2程序功能設(shè)計(jì)及調(diào)試運(yùn)行8在下拉菜單中加入子菜單并進(jìn)行監(jiān)聽(tīng),分別實(shí)現(xiàn)對(duì)文件的操作功能。點(diǎn)擊不同菜單項(xiàng)時(shí),顯示不同接口。9加入工具欄的功能鍵,通過(guò)工具欄實(shí)現(xiàn)對(duì)文本的基本操作。114.3 本章小結(jié)18第5章 改進(jìn)部分195.1加登陸界面19登陸界面設(shè)計(jì)195.1.2

2、 系統(tǒng)主界面22第6章 結(jié)束語(yǔ)24附錄 源代碼27第1章 引言1.1 背景在文本編輯器出現(xiàn)前,人們用打孔機(jī)把計(jì)算機(jī)文字打到穿孔卡片上。文字存放于一個(gè)裝著這樣的薄卡片的盒子里,可以用讀卡器來(lái)閱讀它。 第一個(gè)文本編輯器是一種行編輯器,它運(yùn)行在打字機(jī)型的終端上,這種編輯器并不具備在窗口和屏幕中顯示的功能。它包含了一些非常短的命令(為了減少打字量)。其中一個(gè)命令能夠把文件的指定部分通過(guò)打字機(jī)打印出來(lái)。編輯光標(biāo)是想象中的一個(gè)插入點(diǎn),通過(guò)特殊命令,可以把它移動(dòng)到特定內(nèi)容字符串所在的行。隨后,內(nèi)容字符串又被擴(kuò)展成正則表達(dá)式。如果想看到文件的變化,你需要把它打印出來(lái)。相對(duì)于穿孔機(jī)來(lái)說(shuō),人們認(rèn)為這種基于行的文本

3、編輯器具有革命性的進(jìn)步。如果沒(méi)有它,用戶就需要把那些處理文本的命令打成專用的卡片,并在編輯文件時(shí)使用這些卡片。 當(dāng)帶有顯示屏的計(jì)算機(jī)終端出現(xiàn)后,基于顯示屏的文本編輯器開(kāi)始流行起來(lái)。最早的全屏編輯器中,有一種叫做O26,它是于1967年為CDC 6000系列機(jī)器的操作控制臺(tái)而作的。另外一個(gè)早期的全屏編輯器是vi。vi誕生于20世紀(jì)70年代,至今,它仍是Unix和Linux的標(biāo)準(zhǔn)編輯器。全屏編輯器對(duì)視頻終端的銷售起到了促進(jìn)的作用。1.2 課程設(shè)計(jì)內(nèi)容記事本充分發(fā)揮文本編輯的優(yōu)勢(shì),通過(guò)各種操作的有機(jī)結(jié)合,實(shí)現(xiàn)文本編輯的各項(xiàng)所需功能。本程序的研究?jī)?nèi)容涉及記事本功能實(shí)現(xiàn)的全過(guò)程。該記事本功能包含以下內(nèi)容

4、:(1)打開(kāi)文件,讀取文件中的文本信息:對(duì)原有文件可實(shí)行打開(kāi)操作,并能讀取文件中的內(nèi)容,以方便對(duì)文件的查看,修改等任務(wù)。(2)顯示、編輯修改文本信息:記事本對(duì)文字信息的主要處理功能??蓪?duì)相關(guān)信息進(jìn)行復(fù)制,剪切,粘貼等操作。(3)實(shí)現(xiàn)新建、保存文本文件:新建文本可以使用戶寫入新的信息,文件保存后再次打開(kāi)仍可獲得原有信息。第2章 記事本系統(tǒng)2.1 記事本概述 記事本是一種只能處理純文本的文件。由于多種格式源代碼都是純文本的,所以記事本也就成為了使用最多的源代碼編輯器。它只具備最基本的編輯功能,所以體積小巧,啟動(dòng)快,占用內(nèi)存低,容易使用?!坝浭卤尽钡墓δ茈m然連“寫字板”都比不上,但它還是有它自己的獨(dú)

5、門絕技的。下面我們就來(lái)看看記事本吧。相對(duì)于微軟的Word來(lái)說(shuō)“記事本”的功能確實(shí)是太單薄了,只有:新建,保存,打印,查找,替換這幾個(gè)功能。但是“記事本”卻擁有一個(gè)Word不可能擁有的優(yōu)點(diǎn):打開(kāi)速度快,文件小。我相信對(duì)于這一點(diǎn)大家一定是深有感觸地,一點(diǎn)就打開(kāi);同樣的文本文件用Word保存和用記事本保存的文件大小就大不相同,所以對(duì)于大小在64KB以下的純文本的保存最好還是采用記事本。記事本另一項(xiàng)不可取代的功能是:可以保存無(wú)格式文件。你可以把記事本編輯的文件保存為:“.html”, “.java”,“.asp”等等任意格式。這使得“記事本”又找到了一個(gè)新的用途:作為程序語(yǔ)言的編輯器。翻開(kāi)任何一本介紹

6、一門編程語(yǔ)言的入門教材,里面都會(huì)建議學(xué)生在記事本中編寫源程序。記事本使用的一個(gè)老竅門,在記事本文件的開(kāi)頭輸入:“.LOG”之后你每次打開(kāi)這個(gè)文件就會(huì)在自動(dòng)的紀(jì)錄下文本打開(kāi)的時(shí)間。 2.2 記事本的任務(wù)及目的 打開(kāi)計(jì)算本窗口,在編輯區(qū)進(jìn)行文本的輸入,可以使用剪切、拷貝、粘貼等功能鍵,當(dāng)文本輸入完畢后點(diǎn)擊“文件”菜單,選擇下拉菜單中的“保存文本”打開(kāi)“保存”窗口,選擇保存文件的根目錄進(jìn)行保存。當(dāng)需要關(guān)閉窗口時(shí)可通過(guò)“文件”菜單下的“退出系統(tǒng)”選項(xiàng),或者選擇“工具欄”中的“退出系統(tǒng)”按鈕,也可以直接點(diǎn)擊窗口右上角的關(guān)閉圖標(biāo)進(jìn)行關(guān)閉。2.3 本章小結(jié)記事本是一種只能處理純文本的文件??梢酝ㄟ^(guò)菜單欄和工

7、具欄實(shí)現(xiàn)以下功能:如文件的新建,打開(kāi),保存和退出;對(duì)文件的編輯,如復(fù)制,剪切,粘貼;以及幫助菜單;執(zhí)行完操作后,能夠順利關(guān)閉記事本。第3章 記事本的設(shè)計(jì)這一章時(shí)進(jìn)銷存管理系統(tǒng)的設(shè)計(jì),從系統(tǒng)需求分析開(kāi)始,介紹開(kāi)發(fā)環(huán)境和用到的開(kāi)發(fā)工具,系統(tǒng)主要的功能設(shè)計(jì),系統(tǒng)的數(shù)據(jù)流程圖。3.1 系統(tǒng)需求分析記事本的設(shè)計(jì)目標(biāo)為: 打開(kāi)計(jì)算本窗口,在編輯區(qū)進(jìn)行文本的輸入,可以使用剪切、拷貝、粘貼等功能鍵,當(dāng)文本輸入完畢后點(diǎn)擊“文件”菜單,選擇下拉菜單中的“保存文本”打開(kāi)“保存”窗口,選擇保存文件的根目錄進(jìn)行保存。當(dāng)需要關(guān)閉窗口時(shí)可通過(guò)“文件”菜單下的“退出系統(tǒng)”選項(xiàng),或者選擇“工具欄”中的“退出系統(tǒng)”按鈕,也可以直

8、接點(diǎn)擊窗口右上角的關(guān)閉圖標(biāo)進(jìn)行關(guān)閉。 3.2記事本總體結(jié)構(gòu)(流程圖) 圖3.1 系統(tǒng)功能結(jié)構(gòu)圖3.3 記事本系統(tǒng)各模塊介紹系統(tǒng)各功能模塊實(shí)現(xiàn)的功能為:新建記事本:在文件的下拉菜單中點(diǎn)擊新建文本或單擊工具欄中的新建文本,將文本刷新。打開(kāi)原有的記事本:在文件的下拉菜單中點(diǎn)擊打開(kāi)文本或單擊工具欄中的打開(kāi)文本,再選中原有的記事本,單擊打開(kāi)按鈕,便將原有文本打開(kāi)??截悾合冗x中需復(fù)制的文本,在編輯的下拉菜單中點(diǎn)擊拷貝或單擊工具欄中的拷貝,便將所選文本復(fù)制了。粘貼:在編輯的下拉菜單中點(diǎn)擊粘貼或單擊工具欄中的粘貼,便將所復(fù)制的文本粘貼到需粘貼的地方。剪貼:先選中需剪貼的文本,在編輯的下拉菜單中點(diǎn)擊剪貼或單擊工

9、具欄中的剪貼,便將所選文本剪貼了。保存:在文件的下拉菜單中點(diǎn)擊保存文本或單擊工具欄中的保存文本,便將改變的文本保存好。退出系統(tǒng):在文件的下拉菜單中點(diǎn)擊退出系統(tǒng)或單擊工具欄中的退出系統(tǒng),或直接點(diǎn)擊狀態(tài)欄中的,從而關(guān)閉文本。3.4 本章小結(jié)本章介紹了該記事本的運(yùn)行環(huán)境,以及各功能的體現(xiàn)。第4章 系統(tǒng)的具體實(shí)現(xiàn)界面是系統(tǒng)之間最直接的交互界面,界面的友好性體現(xiàn)了軟件設(shè)計(jì)的質(zhì)量, 并在很大程度上決定了軟件是否成功。4.1窗口設(shè)計(jì) 在主接口中設(shè)計(jì)一個(gè)EditorDemo容器繼承自JFrame,并在其中加入菜單欄、工具欄和一個(gè)文本域控件。 public class EditorDemo extends JF

10、rameJTextPane textPane = new JTextPane(); /創(chuàng)建文本窗格,編輯窗口JFileChooser filechooser = new JFileChooser(); /文件選擇器setJMenuBar(createJMenuBar(actions); /設(shè)置菜單欄Container container = getContentPane(); /得到容器 container.add(createJToolBar(actions), BorderLayout.NORTH); /工具欄container.add(textPane, BorderLayout.CEN

11、TER); /增加文本窗格窗口設(shè)計(jì)流程圖:設(shè)計(jì)一個(gè)容器繼承自JFrame創(chuàng)建文本窗格,編輯窗口創(chuàng)建文件選擇器設(shè)置菜單欄得到容器添加工具欄添加文本窗格圖4.1 窗口模塊框圖4.2程序功能設(shè)計(jì)及調(diào)試運(yùn)行 利用JSP“一次編寫,各處運(yùn)行”的編程優(yōu)點(diǎn),按功能模塊結(jié)構(gòu)設(shè)計(jì)菜單,布置各明細(xì)模塊工作界面,編寫各個(gè)模塊的程序代碼,進(jìn)行編譯連接運(yùn)行,經(jīng)過(guò)反復(fù)調(diào)試修改,以達(dá)到系統(tǒng)功能要求。這個(gè)過(guò)程具有大量的工作量,應(yīng)仔細(xì)對(duì)每個(gè)程序細(xì)節(jié)進(jìn)行分析思考、編寫程序并調(diào)試,做到程序簡(jiǎn)潔清楚,盡量避免可能潛在的程序錯(cuò)誤,并在必要的地方加以注釋,以便于程序閱讀和修改。4.2.1在下拉菜單中加入子菜單并進(jìn)行監(jiān)聽(tīng),分別實(shí)現(xiàn)對(duì)文件的

12、操作功能。點(diǎn)擊不同菜單項(xiàng)時(shí),顯示不同接口。部分代碼:private JMenuBar createJMenuBar(Action actions) /創(chuàng)建菜單欄JMenuBar menubar = new JMenuBar(); /實(shí)例化菜單欄JMenu menuFile = new JMenu(文件(F); /實(shí)例化菜單 JMenu menuEdit = new JMenu(編輯(E);JMenu menuFormat = new JMenu(格式(O);JMenu menuFind = new JMenu(查找(V);JMenu menuAbout = new JMenu(幫助(H);me

13、nuFile.add(new JMenuItem(actions0); /增加新菜單項(xiàng)menuFile.add(new JMenuItem(actions1);menuFile.add(new JMenuItem(actions2);menuFile.addSeparator();menuFile.add(new JMenuItem(actions7);menuEdit.add(new JMenuItem(actions3);menuEdit.add(new JMenuItem(actions4);menuEdit.add(new JMenuItem(actions5);menuAbout.a

14、dd(new JMenuItem(actions6);menubar.add(menuFile); /增加菜單menubar.add(menuEdit);menubar.add(menuFormat);menubar.add(menuFind);menubar.add(menuAbout);return menubar; /返回菜單欄實(shí)現(xiàn)對(duì)文件的操作功能流程圖:創(chuàng)建菜單欄實(shí)例化菜單欄增加新菜單項(xiàng)添加菜單返回菜單欄圖4.2 實(shí)現(xiàn)操作功能框圖如下圖:圖4.2.1 文件菜單功能生成界面圖4.2.2編輯菜單功能生成界面圖4.2.3 幫助菜單功能生成界面加入工具欄的功能鍵,通過(guò)工具欄實(shí)現(xiàn)對(duì)文本的基本操作

15、。關(guān)鍵代碼: Action actions = /Action數(shù)組,各種操作命令new NewAction(),new OpenAction(),new SaveAction(),new CutAction(),new CopyAction(),new PasteAction(),new AboutAction(),new ExitAction(),private JToolBar createJToolBar(Action actions) /創(chuàng)建工具條JToolBar toolBar = new JToolBar(); /實(shí)例化工具條 JButton bt = new JButton(ac

16、tionsi); /實(shí)例化新的按鈕toolBar.add(bt); /增加按鈕到工具欄如圖所示:4.2.3對(duì)每個(gè)菜單項(xiàng)進(jìn)行注冊(cè)監(jiān)聽(tīng)。點(diǎn)擊不同功能鍵時(shí),實(shí)現(xiàn)不同的操作,顯示不同的窗口。 主要實(shí)現(xiàn)方法代碼如下:class NewAction extends AbstractAction /實(shí)現(xiàn)新建文件命令功能public NewAction() super(新建文本);public void actionPerformed(ActionEvent e) textPane.setDocument(new DefaultStyledDocument(); /清空文檔class OpenAction e

17、xtends AbstractAction /實(shí)現(xiàn)打開(kāi)文件命令功能public OpenAction() super(打開(kāi)文本);public void actionPerformed(ActionEvent e) int i = filechooser.showOpenDialog(EditorDemo.this); /顯示打開(kāi)文件對(duì)話框if (i = JFileChooser.APPROVE_OPTION) /點(diǎn)擊對(duì)話框中打開(kāi)選項(xiàng)File f = filechooser.getSelectedFile(); /得到選擇的文件try InputStream is = new FileInpu

18、tStream(f); /得到文件輸入流textPane.read(is, d); /讀入文件到文本窗格 catch (Exception ex) ex.printStackTrace(); /輸出出錯(cuò)信息 如下圖:圖4.2.4 打開(kāi)文件生成界面class SaveAction extends AbstractAction /實(shí)現(xiàn)保存文本命令public SaveAction() super(保存文本);public void actionPerformed(ActionEvent e) int i = filechooser.showSaveDialog(EditorDemo.this);

19、/顯示保存文件對(duì)話框if (i = JFileChooser.APPROVE_OPTION) /點(diǎn)擊對(duì)話框中保存按鈕File f = filechooser.getSelectedFile(); /得到選擇的文件try FileOutputStream out = new FileOutputStream(f); /得到文件輸出流out.write(textPane.getText().getBytes(); /寫出文件 catch (Exception ex) ex.printStackTrace(); /輸出出錯(cuò)信息如下圖:圖4.3.1 保存文件生成界面class ExitAction e

20、xtends AbstractAction /實(shí)現(xiàn)退出命令public ExitAction() super(退出系統(tǒng));public void actionPerformed(ActionEvent e) System.exit(0); /退出程序class CutAction extends AbstractAction /實(shí)現(xiàn)剪切命令public CutAction() super(剪切);public void actionPerformed(ActionEvent e) textPane.cut(); /調(diào)用文本窗格的剪切命令class CopyAction extends Abst

21、ractAction /實(shí)現(xiàn)拷貝命令public CopyAction() super(拷貝);public void actionPerformed(ActionEvent e) textPane.copy(); /調(diào)用文本窗格的拷貝命令class PasteAction extends AbstractAction /實(shí)現(xiàn)粘貼命令public PasteAction() super(粘貼);public void actionPerformed(ActionEvent e) textPane.paste(); /調(diào)用文本窗格的粘貼命令class AboutAction extends Ab

22、stractAction /關(guān)于版本命令public AboutAction() super(版本);public void actionPerformed(ActionEvent e) String str=記事本n版本:1.0n n主要功能:實(shí)現(xiàn)簡(jiǎn)單文本編輯。 JOptionPane.showMessageDialog(EditorDemo.this, str); /顯示軟件信息如下圖:圖4.2.5 顯示版本界面生成圖類向?qū)У裙δ?。第一次啟?dòng)時(shí)提示設(shè)置JavaJDK主目錄及JDKJavaDoc目錄,軟件自動(dòng)設(shè)置好類路徑、編譯器及解釋器路徑,還可以在幫助菜單中使用JDKHelp。4.2.5

23、系統(tǒng)調(diào)試分析 1:窗口調(diào)試確定主窗體,設(shè)置主窗體的屬性,對(duì)窗體進(jìn)行布局,加入所需控件并對(duì)控件進(jìn)行初始化。在完成所有方法的源代碼編輯后,對(duì)程序進(jìn)行編譯、運(yùn)行!會(huì)出現(xiàn)窗體如下圖:圖4.2.6 編譯運(yùn)行程序生成界面 2:功能調(diào)試對(duì)所有菜單項(xiàng)進(jìn)行注冊(cè)監(jiān)聽(tīng)。在編寫觸發(fā)事件時(shí)執(zhí)行各項(xiàng)操作,包括了一些常用部分的事件處理,實(shí)現(xiàn)各功能鍵的操作。例如 當(dāng)點(diǎn)擊“文件“按鈕是顯示如下窗口:圖4.2.7 文件按鈕實(shí)現(xiàn)生成界面當(dāng)需要打開(kāi)已存在的文件時(shí),點(diǎn)擊“打開(kāi)文本”按鈕會(huì)出現(xiàn)如下窗口: 圖4.2.8 打開(kāi)文件按鈕實(shí)現(xiàn)生成界面當(dāng)輸入完文本是要保存的話,點(diǎn)擊“保存文本”會(huì)出現(xiàn)下面的窗口: 圖4.2.9 輸入文本界面 圖4.

24、2.10 保存文本界面依次調(diào)試其他功能鍵及窗口,直至達(dá)到符合要求的能實(shí)現(xiàn)簡(jiǎn)易的記事本的功能!4.3 本章小結(jié)本章介紹了系統(tǒng)的具體實(shí)現(xiàn)和部分關(guān)鍵代碼,其中包括如何實(shí)現(xiàn)新建文件,打開(kāi)文件,保存文件,退出系統(tǒng)以及剪切,拷貝,粘貼等具體操作。第5章 改進(jìn)部分5.1加登陸界面 5.1.1登陸界面設(shè)計(jì)用戶登陸界面圖如圖如圖5.1.1和圖5.1.2所示:圖5.1.1 用戶登錄模塊框圖圖5.1.2 用戶登陸界面LoginIn的作用是檢測(cè)用戶登陸的合法性,并確認(rèn)用戶輸入了合法的登錄名和口令部分代碼: class LoginIn extends JFrame EditorDemo edit;LoginIn log

25、in;JTextField f1;JTextField f2;JButton b1;JButton b2;String power;/ 表示權(quán)限String imgePath = e:/workspace/GUI/14.gif;JPanel p5;Image img = Toolkit.getDefaultToolkit().createImage(imgePath);LoginIn(EditorDemo edit) this.edit = edit;login = this;Container cp = getContentPane();Label l1 = new Label(用戶:);L

26、abel l2 = new Label(密碼:);JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JPanel p4 = new JPanel();p5 = new JPanel() protected void paintChildren(Graphics g) g.drawImage(img, 0, 0, this);super.paintChildren(g);f1 = new JTextField(15);f2 = new JPasswordField(15);b1 = new JBu

27、tton(登錄);b2 = new JButton(重置);p1.setBackground(Color.orange);p2.add(l1);p2.add(f1);p2.setBorder(new MatteBorder(0, 0, 0, 0, Color.BLACK);p2.setBackground(Color.ORANGE);p3.add(l2);p3.add(f2);p3.setBackground(Color.ORANGE);p3.setBorder(new MatteBorder(0, 0, 0, 0, Color.BLACK);p4.add(b1);p4.add(b2);p4.

28、setBorder(new MatteBorder(-3, -3, -3, -3, Color.CYAN);p4.setBackground(Color.ORANGE);p5.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 20);p5.add(p2);p5.add(p3);p5.add(p4);cp.add(p5, BorderLayout.CENTER);b1.addActionListener(new Enter();b2.addActionListener(new ReWrite();addWindowListener(new winCl

29、ose();class Enter implements ActionListener public void actionPerformed(ActionEvent e) if (f1.getText().equals(admin) & (f2.getText().equals(123) JOptionPane.showMessageDialog(null, 登錄成功!用戶權(quán)限是adimistrator);power = adminstrator;login.setVisible(false);edit.setVisible(true); else if (f1.getText().equa

30、ls(snake)& (f2.getText().equals(123456) JOptionPane.showMessageDialog(null, 登錄成功!登錄成功!用戶權(quán)限是user);power = adminstrator; elseJOptionPane.showMessageDialog(null, 登錄失敗,請(qǐng)重新登錄!);class ReWrite implements ActionListener public void actionPerformed(ActionEvent e) f1.setText();f2.setText();f1.requestFocus();c

31、lass winClose extends WindowAdapter public void windowClosing(WindowEvent e) (e.getWindow().dispose();System.exit(0);5.1.2 系統(tǒng)主界面登陸成功界面:圖5.2登陸成功界面登陸成功后彈出記事本界面: 圖5.2 系統(tǒng)主界面第6章 結(jié)束語(yǔ)由于計(jì)算機(jī)的普及,各行業(yè)、各單位都有計(jì)算機(jī)軟件系統(tǒng)的應(yīng)用。該程序所體現(xiàn)的記事本功能為相關(guān)記事本的操作和管理帶來(lái)諸多方便,提高了工作效率。本課程設(shè)計(jì)的記事本通過(guò)在JAVA平臺(tái)編譯、運(yùn)行源代碼,打開(kāi)計(jì)算本窗口,在編輯區(qū)進(jìn)行文本的輸入,可以使用剪切、拷貝

32、、粘貼等功能鍵,當(dāng)文本輸入完畢后點(diǎn)擊“文件”菜單,選擇下拉菜單中的“保存文本”打開(kāi)“保存”窗口,選擇保存文件的根目錄進(jìn)行保存。當(dāng)需要關(guān)閉窗口時(shí)可通過(guò)“文件”菜單下的“退出系統(tǒng)”選項(xiàng),或者選擇“工具欄”中的“退出系統(tǒng)”按鈕,也可以直接點(diǎn)擊窗口右上角的關(guān)閉圖標(biāo)進(jìn)行關(guān)閉。經(jīng)過(guò)java記事本的課程設(shè)計(jì),收獲到了很多,加深了對(duì)Java語(yǔ)言的理論知識(shí)的理解;更加熟練的掌握了Java語(yǔ)言的設(shè)計(jì)能力并且有了實(shí)踐經(jīng)驗(yàn);在設(shè)計(jì)過(guò)程中,學(xué)到了許多在課堂上沒(méi)有教授的知識(shí);加強(qiáng)了對(duì)Java語(yǔ)言的學(xué)習(xí)興趣和好感。附錄 源代碼程序源代碼:/記事本import java.awt.BorderLayout;import jav

33、a.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Font;import java.awt.Graphics;import java.awt.Image;import java.awt.Label;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.aw

34、t.event.WindowEvent;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import javax.swing.AbstractAction;import javax.swing.Action;import javax.swing.JButton;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel

35、;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.JTextPane;import javax.swing.JToolBar;import javax.swing.border.MatteBorder;i

36、mport javax.swing.text.DefaultEditorKit.CopyAction;import javax.swing.text.DefaultEditorKit.CutAction;import javax.swing.text.DefaultEditorKit.PasteAction;import javax.swing.text.DefaultStyledDocument;public class EditorDemo extends JFrame JTextPane textPane = new JTextPane(); / 文本窗格,編輯窗口JLabel stat

37、usBar = new JLabel(); / 狀態(tài)欄JFileChooser filechooser = new JFileChooser(); / 文件選擇器public EditorDemo() / 構(gòu)造函數(shù)super(簡(jiǎn)易記事本); / 調(diào)用父類構(gòu)造函數(shù)Action actions = / Action數(shù)組,各種操作命令 new NewAction(), new OpenAction(), new SaveAction(), new CutAction(),new CopyAction(), new PasteAction(), new AboutAction(),new ExitAc

38、tion(), ;setJMenuBar(createJMenuBar(actions); / 設(shè)置菜單欄Container container = getContentPane(); / 得到容器container.add(createJToolBar(actions), BorderLayout.NORTH); / 增加工具欄container.add(textPane, BorderLayout.CENTER); / 增加文本窗格container.add(statusBar, BorderLayout.SOUTH); / 增加狀態(tài)欄setSize(500, 400); / 設(shè)置窗口尺寸

39、/setVisible(true); / 設(shè)置窗口可視setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); / 關(guān)閉窗口時(shí)退出程序private JMenuBar createJMenuBar(Action actions) / 創(chuàng)建菜單欄JMenuBar menubar = new JMenuBar(); / 實(shí)例化菜單欄JMenu menuFile = new JMenu(文件(F); / 實(shí)例化菜單JMenu menuEdit = new JMenu(編輯(E);JMenu menuFormat = new JMenu(格式(O);JMenu m

40、enuFind = new JMenu(查找(V);JMenu menuAbout = new JMenu(幫助(H);menuFile.add(new JMenuItem(actions0); / 增加新菜單項(xiàng)menuFile.add(new JMenuItem(actions1);menuFile.add(new JMenuItem(actions2);menuFile.addSeparator();menuFile.add(new JMenuItem(actions7);menuEdit.add(new JMenuItem(actions3);menuEdit.add(new JMenu

41、Item(actions4);menuEdit.add(new JMenuItem(actions5);menuAbout.add(new JMenuItem(actions6);menubar.add(menuFile); / 增加菜單menubar.add(menuEdit);menubar.add(menuFormat);menubar.add(menuFind);menubar.add(menuAbout);return menubar; / 返回菜單欄private JToolBar createJToolBar(Action actions) / 創(chuàng)建工具條JToolBar too

42、lBar = new JToolBar(); / 實(shí)例化工具條for (int i = 0; i actions.length; i+) JButton bt = new JButton(actionsi); / 實(shí)例化新的按鈕bt.setRequestFocusEnabled(false); / 設(shè)置不需要焦點(diǎn)bt.setFont(new Font(宋體, Font.PLAIN, 12);bt.setBackground(Color.pink);toolBar.add(bt); / 增加按鈕到工具欄return toolBar; / 返回工具欄class NewAction extends

43、AbstractAction / 新建文件命令public NewAction() super(新建文本);public void actionPerformed(ActionEvent e) textPane.setDocument(new DefaultStyledDocument(); / 清空文檔class OpenAction extends AbstractAction / 打開(kāi)文件命令public OpenAction() super(打開(kāi)文本);public void actionPerformed(ActionEvent e) int i = filechooser.show

44、OpenDialog(EditorDemo.this); / 顯示打開(kāi)文件對(duì)話框if (i = JFileChooser.APPROVE_OPTION) / 點(diǎn)擊對(duì)話框中打開(kāi)選項(xiàng)File f = filechooser.getSelectedFile(); / 得到選擇的文件try InputStream is = new FileInputStream(f); / 得到文件輸入流textPane.read(is, d); / 讀入文件到文本窗格 catch (Exception ex) ex.printStackTrace(); / 輸出出錯(cuò)信息class SaveAction extend

45、s AbstractAction / 保存命令public SaveAction() super(保存文本);public void actionPerformed(ActionEvent e) int i = filechooser.showSaveDialog(EditorDemo.this); / 顯示保存文件對(duì)話框if (i = JFileChooser.APPROVE_OPTION) / 點(diǎn)擊對(duì)話框中保存按鈕File f = filechooser.getSelectedFile(); / 得到選擇的文件try FileOutputStream out = new FileOutpu

46、tStream(f); / 得到文件輸出流out.write(textPane.getText().getBytes(); / 寫出文件 catch (Exception ex) ex.printStackTrace(); / 輸出出錯(cuò)信息class ExitAction extends AbstractAction / 退出命令public ExitAction() super(退出系統(tǒng));public void actionPerformed(ActionEvent e) System.exit(0); / 退出程序class CutAction extends AbstractActio

47、n / 剪切命令public CutAction() super(剪切);public void actionPerformed(ActionEvent e) textPane.cut(); / 調(diào)用文本窗格的剪切命令class CopyAction extends AbstractAction / 拷貝命令public CopyAction() super(拷貝);public void actionPerformed(ActionEvent e) textPane.copy(); / 調(diào)用文本窗格的拷貝命令class PasteAction extends AbstractAction /

48、 粘貼命令public PasteAction() super(粘貼);public void actionPerformed(ActionEvent e) textPane.paste(); / 調(diào)用文本窗格的粘貼命令class AboutAction extends AbstractAction / 關(guān)于選項(xiàng)命令public AboutAction() super(版本);public void actionPerformed(ActionEvent e) String str = 簡(jiǎn)易記事本nn版本:1.0n作者:斌n主要功能:實(shí)現(xiàn)簡(jiǎn)單文本編輯。;JOptionPane.showMess

49、ageDialog(EditorDemo.this, str); / 顯示軟件信息public static void main(String args) LoginIn log = new LoginIn(new EditorDemo();log.setTitle(系統(tǒng)登錄);log.setSize(360, 250);log.setVisible(true);class LoginIn extends JFrame EditorDemo edit;LoginIn login;JTextField f1;JTextField f2;JButton b1;JButton b2;String p

50、ower;/ 表示權(quán)限String imgePath = e:/workspace/GUI/14.gif;JPanel p5;Image img = Toolkit.getDefaultToolkit().createImage(imgePath);LoginIn(EditorDemo edit) this.edit = edit;login = this;Container cp = getContentPane(); /初始化一個(gè)容器,用來(lái)在容器上添加一些控件Label l1 = new Label(用戶:);Label l2 = new Label(密碼:);JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 =

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論