版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 第1章 引言1</b></p><p><b> 1.1 背景1</b></p><p> 1.2 課程設(shè)計(jì)內(nèi)容1</p><p> 第2章 記事本系統(tǒng)3</p><p&
2、gt; 2.1 記事本概述3</p><p> 2.2 記事本的任務(wù)及目的3</p><p> 2.3 本章小結(jié)3</p><p> 第3章 記事本的設(shè)計(jì)4</p><p> 3.1 系統(tǒng)需求分析4</p><p> 3.2 系統(tǒng)開發(fā)及運(yùn)行環(huán)境4</p><p> 3.
3、3記事本總體結(jié)構(gòu)(流程圖)5</p><p> 3.4 記事本系統(tǒng)各模塊介紹5</p><p> 3.5 本章小結(jié)6</p><p> 第4章 系統(tǒng)的具體實(shí)現(xiàn)7</p><p><b> 4.1窗口設(shè)計(jì)7</b></p><p> 4.2程序功能設(shè)計(jì)及調(diào)試運(yùn)行8</p&
4、gt;<p> 4.2.1在下拉菜單中加入子菜單并進(jìn)行監(jiān)聽,分別實(shí)現(xiàn)對(duì)文件的操作功能。點(diǎn)擊不同菜單項(xiàng)時(shí),顯示不同接口。9</p><p> 4.2.2加入工具欄的功能鍵,通過工具欄實(shí)現(xiàn)對(duì)文本的基本操作。11</p><p> 4.3 本章小結(jié)18</p><p> 第5章 改進(jìn)部分19</p><p> 5.1
5、加登陸界面19</p><p> 5.1.1登陸界面設(shè)計(jì)19</p><p> 5.1.2 系統(tǒng)主界面22</p><p> 第6章 結(jié)束語24</p><p><b> 附錄 源代碼27</b></p><p><b> 第1章 引言</b></p
6、><p><b> 1.1 背景</b></p><p> 在文本編輯器出現(xiàn)前,人們用打孔機(jī)把計(jì)算機(jī)文字打到穿孔卡片上。文字存放于一個(gè)裝著這樣的薄卡片的盒子里,可以用讀卡器來閱讀它。 </p><p> 第一個(gè)文本編輯器是一種行編輯器,它運(yùn)行在打字機(jī)型的終端上,這種編輯器并不具備在窗口和屏幕中顯示的功能。它包含了一些非常短的命令(為了減少
7、打字量)。其中一個(gè)命令能夠把文件的指定部分通過打字機(jī)打印出來。編輯光標(biāo)是想象中的一個(gè)插入點(diǎn),通過特殊命令,可以把它移動(dòng)到特定內(nèi)容字符串所在的行。隨后,內(nèi)容字符串又被擴(kuò)展成正則表達(dá)式。如果想看到文件的變化,你需要把它打印出來。相對(duì)于穿孔機(jī)來說,人們認(rèn)為這種基于行的文本編輯器具有革命性的進(jìn)步。如果沒有它,用戶就需要把那些處理文本的命令打成專用的卡片,并在編輯文件時(shí)使用這些卡片。 </p><p> 當(dāng)帶有顯示屏
8、的計(jì)算機(jī)終端出現(xiàn)后,基于顯示屏的文本編輯器開始流行起來。最早的全屏編輯器中,有一種叫做O26,它是于1967年為CDC 6000系列機(jī)器的操作控制臺(tái)而作的。另外一個(gè)早期的全屏編輯器是vi。vi誕生于20世紀(jì)70年代,至今,它仍是Unix和Linux的標(biāo)準(zhǔn)編輯器。全屏編輯器對(duì)視頻終端的銷售起到了促進(jìn)的作用。</p><p> 1.2 課程設(shè)計(jì)內(nèi)容</p><p> 記事本充分發(fā)揮文本編輯
9、的優(yōu)勢,通過各種操作的有機(jī)結(jié)合,實(shí)現(xiàn)文本編輯的各項(xiàng)所需功能。本程序的研究內(nèi)容涉及記事本功能實(shí)現(xiàn)的全過程。 該記事本功能包含以下內(nèi)容:</p><p> ?。?)打開文件,讀取文件中的文本信息:對(duì)原有文件可實(shí)行打開操作,并能讀取文件中的內(nèi)容,以方便對(duì)文件的查看,修改等任務(wù)。</p><p> (2)顯示、編輯修改文本信息:記事本對(duì)文字信息的主要處理功能???/p>
10、對(duì)相關(guān)信息進(jìn)行復(fù)制,剪切,粘貼等操作。</p><p> ?。?)實(shí)現(xiàn)新建、保存文本文件:新建文本可以使用戶寫入新的信息,文件保存后再次打開仍可獲得原有信息。</p><p><b> 第2章 記事本系統(tǒng)</b></p><p><b> 2.1 記事本概述</b></p><p> 記事本是
11、一種只能處理純文本的文件。由于多種格式源代碼都是純文本的,所以記事本也就成為了使用最多的源代碼編輯器。它只具備最基本的編輯功能,所以體積小巧,啟動(dòng)快,占用內(nèi)存低,容易使用?!坝浭卤尽钡墓δ茈m然連“寫字板”都比不上,但它還是有它自己的獨(dú)門絕技的。下面我們就來看看記事本吧。相對(duì)于微軟的Word來說“記事本”的功能確實(shí)是太單薄了,只有:新建,保存,打印,查找,替換這幾個(gè)功能。但是“記事本”卻擁有一個(gè)Word不可能擁有的優(yōu)點(diǎn):打開速度快,文件小
12、。我相信對(duì)于這一點(diǎn)大家一定是深有感觸地,一點(diǎn)就打開;同樣的文本文件用Word保存和用記事本保存的文件大小就大不相同,所以對(duì)于大小在64KB以下的純文本的保存最好還是采用記事本。記事本另一項(xiàng)不可取代的功能是:可以保存無格式文件。你可以把記事本編輯的文件保存為:“.html”, “.java”,“.asp”等等任意格式。這使得“記事本”又找到了一個(gè)新的用途:作為程序語言的編輯器。翻開任何一本介紹一門編程語言的入門教材,里面都會(huì)建議學(xué)生在記事
13、本中編寫源程序。記事本使用的一個(gè)老竅門,在記事本文件的開頭輸入:“.LOG”之后你每次打開這個(gè)文件就會(huì)在自動(dòng)的紀(jì)</p><p> 2.2 記事本的任務(wù)及目的</p><p> 打開計(jì)算本窗口,在編輯區(qū)進(jìn)行文本的輸入,可以使用剪切、拷貝、粘貼等功能鍵,當(dāng)文本輸入完畢后點(diǎn)擊“文件”菜單,選擇下拉菜單中的“保存文本”打開“保存”窗口,選擇保存文件的根目錄進(jìn)行保存。當(dāng)需要關(guān)閉窗口時(shí)可通過“文
14、件”菜單下的“退出系統(tǒng)”選項(xiàng),或者選擇“工具欄”中的“退出系統(tǒng)”按鈕,也可以直接點(diǎn)擊窗口右上角的關(guān)閉圖標(biāo)進(jìn)行關(guān)閉。</p><p><b> 2.3 本章小結(jié)</b></p><p> 記事本是一種只能處理純文本的文件??梢酝ㄟ^菜單欄和工具欄實(shí)現(xiàn)以下功能:如文件的新建,打開,保存和退出;對(duì)文件的編輯,如復(fù)制,剪切,粘貼;以及幫助菜單;執(zhí)行完操作后,能夠順利關(guān)閉記事
15、本。</p><p> 第3章 記事本的設(shè)計(jì)</p><p> 這一章時(shí)進(jìn)銷存管理系統(tǒng)的設(shè)計(jì),從系統(tǒng)需求分析開始,介紹開發(fā)環(huán)境和用到的開發(fā)工具,系統(tǒng)主要的功能設(shè)計(jì),系統(tǒng)的數(shù)據(jù)流程圖。</p><p> 3.1 系統(tǒng)需求分析</p><p> 記事本的設(shè)計(jì)目標(biāo)為:</p><p> 打開計(jì)算本窗口,在編輯區(qū)進(jìn)行
16、文本的輸入,可以使用剪切、拷貝、粘貼等功能鍵,當(dāng)文本輸入完畢后點(diǎn)擊“文件”菜單,選擇下拉菜單中的“保存文本”打開“保存”窗口,選擇保存文件的根目錄進(jìn)行保存。當(dāng)需要關(guān)閉窗口時(shí)可通過“文件”菜單下的“退出系統(tǒng)”選項(xiàng),或者選擇“工具欄”中的“退出系統(tǒng)”按鈕,也可以直接點(diǎn)擊窗口右上角的關(guān)閉圖標(biāo)進(jìn)行關(guān)閉。 </p><p> 3.2記事本總體結(jié)構(gòu)(流程圖)&
17、lt;/p><p> 圖3.1 系統(tǒng)功能結(jié)構(gòu)圖</p><p> 3.3 記事本系統(tǒng)各模塊介紹</p><p> 系統(tǒng)各功能模塊實(shí)現(xiàn)的功能為:</p><p> 新建記事本:在文件的下拉菜單中點(diǎn)擊新建文本或單擊工具欄中的新建文本,將文本刷新。</p><p> 打開原有的記事本:在文件的下拉菜單中點(diǎn)擊打開文本或
18、單擊工具欄中的打開文本,再選中原有的記事本,單擊打開按鈕,便將原有文本打開。</p><p> 拷貝:先選中需復(fù)制的文本,在編輯的下拉菜單中點(diǎn)擊拷貝或單擊工具欄中的拷貝,便將所選文本復(fù)制了。</p><p> 粘貼:在編輯的下拉菜單中點(diǎn)擊粘貼或單擊工具欄中的粘貼,便將所復(fù)制的文本粘貼到需粘貼的地方。</p><p> 剪貼:先選中需剪貼的文本,在編輯的下拉菜單
19、中點(diǎn)擊剪貼或單擊工具欄中的剪貼,便將所選文本剪貼了。</p><p> 保存:在文件的下拉菜單中點(diǎn)擊保存文本或單擊工具欄中的保存文本,便將改變的文本保存好。</p><p> 退出系統(tǒng):在文件的下拉菜單中點(diǎn)擊退出系統(tǒng)或單擊工具欄中的退出系統(tǒng),或直接點(diǎn)擊狀態(tài)欄中的,從而關(guān)閉文本。</p><p><b> 3.4 本章小結(jié)</b></
20、p><p> 本章介紹了該記事本的運(yùn)行環(huán)境,以及各功能的體現(xiàn)。</p><p> 第4章 系統(tǒng)的具體實(shí)現(xiàn)</p><p> 界面是系統(tǒng)之間最直接的交互界面,界面的友好性體現(xiàn)了軟件設(shè)計(jì)的質(zhì)量, 并在很大程度上決定了軟件是否成功。</p><p><b> 4.1窗口設(shè)計(jì)</b></p><p>
21、 在主接口中設(shè)計(jì)一個(gè)EditorDemo容器繼承自JFrame,并在其中加入菜單欄、工具欄和一個(gè)文本域控件。 </p><p> public class EditorDemo extends JFrame</p><p> JTextPane textPane = new JTextPane(); //創(chuàng)建文本窗格,編輯窗口</p><p> JFile
22、Chooser filechooser = new JFileChooser(); //文件選擇器</p><p> setJMenuBar(createJMenuBar(actions)); //設(shè)置菜單欄</p><p> Container container = getContentPane(); //得到容器</p><p> container.
23、add(createJToolBar(actions), BorderLayout.NORTH); //工具欄</p><p> container.add(textPane, BorderLayout.CENTER); //增加文本窗格</p><p><b> 窗口設(shè)計(jì)流程圖:</b></p><p> 圖4.1 窗口模塊框圖<
24、/p><p> 4.2程序功能設(shè)計(jì)及調(diào)試運(yùn)行</p><p> 利用JSP“一次編寫,各處運(yùn)行”的編程優(yōu)點(diǎn),按功能模塊結(jié)構(gòu)設(shè)計(jì)菜單,布置各明細(xì)模塊工作界面,編寫各個(gè)模塊的程序代碼,進(jìn)行編譯連接運(yùn)行,經(jīng)過反復(fù)調(diào)試修改,以達(dá)到系統(tǒng)功能要求。這個(gè)過程具有大量的工作量,應(yīng)仔細(xì)對(duì)每個(gè)程序細(xì)節(jié)進(jìn)行分析思考、編寫程序并調(diào)試,做到程序簡潔清楚,盡量避免可能潛在的程序錯(cuò)誤,并在必要的地方加以注釋,以便于程序
25、閱讀和修改。</p><p> 4.2.1在下拉菜單中加入子菜單并進(jìn)行監(jiān)聽,分別實(shí)現(xiàn)對(duì)文件的操作功能。點(diǎn)擊不同菜單項(xiàng)時(shí),顯示不同接口。</p><p><b> 部分代碼:</b></p><p> private JMenuBar createJMenuBar(Action[] actions) //創(chuàng)建菜單欄</p>
26、;<p> JMenuBar menubar = new JMenuBar(); //實(shí)例化菜單欄</p><p> JMenu menuFile = new JMenu("文件(F)"); //實(shí)例化菜單</p><p> JMenu menuEdit = new JMenu("編輯(E)"
27、);</p><p> JMenu menuFormat = new JMenu("格式(O)");</p><p> JMenu menuFind = new JMenu("查找(V)");</p><p> JMenu menuAbout = new JMenu("幫助(H)");</p&g
28、t;<p> menuFile.add(new JMenuItem(actions[0])); //增加新菜單項(xiàng)</p><p> menuFile.add(new JMenuItem(actions[1]));</p><p> menuFile.add(new JMenuItem(actions[2]));</p><p>
29、 menuFile.addSeparator();</p><p> menuFile.add(new JMenuItem(actions[7]));</p><p> menuEdit.add(new JMenuItem(actions[3]));</p><p> menuEdit.add(new JMenuItem(actions[4]));</p
30、><p> menuEdit.add(new JMenuItem(actions[5]));</p><p> menuAbout.add(new JMenuItem(actions[6]));</p><p> menubar.add(menuFile); //增加菜單</p><p> m
31、enubar.add(menuEdit);</p><p> menubar.add(menuFormat);</p><p> menubar.add(menuFind);</p><p> menubar.add(menuAbout);</p><p> return menubar;
32、 //返回菜單欄</p><p> 實(shí)現(xiàn)對(duì)文件的操作功能流程圖:</p><p> 圖4.2 實(shí)現(xiàn)操作功能框圖</p><p><b> 如下圖:</b></p><p> 圖4.2.1 文件菜單功能生成界面</p><p> 圖4.2.2編輯菜單功能生成界面</p
33、><p> 圖4.2.3 幫助菜單功能生成界面</p><p> 4.2.2加入工具欄的功能鍵,通過工具欄實(shí)現(xiàn)對(duì)文本的基本操作。</p><p><b> 關(guān)鍵代碼:</b></p><p> Action[] actions = //Action數(shù)組,各種操作命令</p><p> ne
34、w NewAction(),</p><p> new OpenAction(),</p><p> new SaveAction(),</p><p> new CutAction(),</p><p> new CopyAction(),</p><p> new PasteAction(),</p
35、><p> new AboutAction(),</p><p> new ExitAction(),</p><p> private JToolBar createJToolBar(Action[] actions) //創(chuàng)建工具條</p><p> JToolBar toolBar = new JToolBar(); //實(shí)例化工具
36、條 </p><p> JButton bt = new JButton(actions[i]); //實(shí)例化新的按鈕</p><p> toolBar.add(bt); //增加按鈕到工具欄</p><p><b> 如圖所示:</b></p><p> 4.2.3對(duì)每個(gè)菜單項(xiàng)進(jìn)行注冊監(jiān)聽。點(diǎn)擊不同功能鍵時(shí),
37、實(shí)現(xiàn)不同的操作,顯示不同的窗口。</p><p> 主要實(shí)現(xiàn)方法代碼如下:</p><p> class NewAction extends AbstractAction { //實(shí)現(xiàn)新建文件命令功能</p><p> public NewAction() {</p><p> super("新建文本");<
38、/p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> textPane.setDocument(new DefaultStyledDocument()); //清空文檔</p><p><b> }&
39、lt;/b></p><p><b> }</b></p><p> class OpenAction extends AbstractAction { //實(shí)現(xiàn)打開文件命令功能</p><p> public OpenAction() {</p><p> super("打開文本");
40、</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> int i = filechooser.showOpenDialog(EditorDemo.this); </p><p> //顯示打開文件對(duì)話框
41、</p><p> if (i == JFileChooser.APPROVE_OPTION) { //點(diǎn)擊對(duì)話框中打開選項(xiàng)</p><p> File f = filechooser.getSelectedFile(); //得到選擇的文件</p><p><b> try {</b></p><p> Inp
42、utStream is = new FileInputStream(f); //得到文件輸入流</p><p> textPane.read(is, "d"); //讀入文件到文本窗格</p><p> } catch (Exception ex) {</p><p> ex.printStackTrace(); //輸出出錯(cuò)信息<
43、/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 如下圖:</b></p
44、><p> 圖4.2.4 打開文件生成界面</p><p> class SaveAction extends AbstractAction { //實(shí)現(xiàn)保存文本命令</p><p> public SaveAction() {</p><p> super("保存文本");}</p><p>
45、; public void actionPerformed(ActionEvent e) {</p><p> int i = filechooser.showSaveDialog(EditorDemo.this); </p><p> //顯示保存文件對(duì)話框</p><p> if (i == JFileChooser.APPROVE_OPTION) {
46、 //點(diǎn)擊對(duì)話框中保存按鈕</p><p> File f = filechooser.getSelectedFile(); //得到選擇的文件</p><p><b> try {</b></p><p> FileOutputStream out = new FileOutputStream(f); </p><
47、p><b> //得到文件輸出流</b></p><p> out.write(textPane.getText().getBytes()); //寫出文件</p><p> } catch (Exception ex) {</p><p> ex.printStackTrace(); //輸出出錯(cuò)信息}}}}</p>
48、;<p><b> 如下圖:</b></p><p> 圖4.3.1 保存文件生成界面</p><p> class ExitAction extends AbstractAction { //實(shí)現(xiàn)退出命令</p><p> public ExitAction() {</p><p> super
49、("退出系統(tǒng)");}</p><p> public void actionPerformed(ActionEvent e) {</p><p> System.exit(0); //退出程序}}</p><p> class CutAction extends AbstractAction { //實(shí)現(xiàn)剪切命令</p>
50、<p> public CutAction() {</p><p> super("剪切");}</p><p> public void actionPerformed(ActionEvent e) {</p><p> textPane.cut(); //調(diào)用文本窗格的剪切命令}}</p><p>
51、 class CopyAction extends AbstractAction { //實(shí)現(xiàn)拷貝命令</p><p> public CopyAction() {</p><p> super("拷貝");}</p><p> public void actionPerformed(ActionEvent e) </p>
52、<p> {textPane.copy(); //調(diào)用文本窗格的拷貝命令</p><p> class PasteAction extends AbstractAction { //實(shí)現(xiàn)粘貼命令</p><p> public PasteAction() {</p><p> super("粘貼");}</p>
53、<p> public void actionPerformed(ActionEvent e) {</p><p> textPane.paste(); //調(diào)用文本窗格的粘貼命令}}</p><p> class AboutAction extends AbstractAction { //關(guān)于版本命令</p><p> public Ab
54、outAction() {</p><p> super("版本");}</p><p> public void actionPerformed(ActionEvent e) {</p><p> String str="記事本\n\版本:1.0\n \n主要功能:實(shí)現(xiàn)簡單文本編輯。 </p><p>
55、 JOptionPane.showMessageDialog(EditorDemo.this, str); //顯示軟件信息</p><p><b> }</b></p><p><b> }</b></p><p><b> 如下圖:</b></p><p> 圖4.
56、2.5 顯示版本界面生成圖</p><p> 類向?qū)У裙δ堋5谝淮螁?dòng)時(shí)提示設(shè)置JavaJDK主目錄及JDKJavaDoc目錄,軟件自動(dòng)設(shè)置好類路徑、編譯器及解釋器路徑,還可以在幫助菜單中使用JDKHelp。</p><p> 4.2.5 系統(tǒng)調(diào)試分析</p><p><b> 1:窗口調(diào)試</b></p><p>
57、; 確定主窗體,設(shè)置主窗體的屬性,對(duì)窗體進(jìn)行布局,加入所需控件并對(duì)控件進(jìn)行初始化。在完成所有方法的源代碼編輯后,對(duì)程序進(jìn)行編譯、運(yùn)行!會(huì)出現(xiàn)窗體如下圖:</p><p> 圖4.2.6 編譯運(yùn)行程序生成界面</p><p><b> 2:功能調(diào)試</b></p><p> 對(duì)所有菜單項(xiàng)進(jìn)行注冊監(jiān)聽。在編寫觸發(fā)事件時(shí)執(zhí)行各項(xiàng)操作,包括了一
58、些常用部分的事件處理,實(shí)現(xiàn)各功能鍵的操作。例如 當(dāng)點(diǎn)擊“文件“按鈕是顯示如下窗口:</p><p> 圖4.2.7 文件按鈕實(shí)現(xiàn)生成界面</p><p> 當(dāng)需要打開已存在的文件時(shí),點(diǎn)擊“打開文本”按鈕會(huì)出現(xiàn)如下窗口: </p><p> 圖4.2.8 打開文件按鈕實(shí)現(xiàn)生成界面</p><p> 當(dāng)輸入完文本是要保存的話,點(diǎn)擊“保存文
59、本”會(huì)出現(xiàn)下面的窗口:</p><p> 圖4.2.9 輸入文本界面 圖4.2.10 保存文本界面</p><p> 依次調(diào)試其他功能鍵及窗口,直至達(dá)到符合要求的能實(shí)現(xiàn)簡易的記事本的功能!</p><p><b> 4.3 本章小結(jié)</b></p><p> 本章介紹了系統(tǒng)的具體
60、實(shí)現(xiàn)和部分關(guān)鍵代碼,其中包括如何實(shí)現(xiàn)新建文件,打開文件,保存文件,退出系統(tǒng)以及剪切,拷貝,粘貼等具體操作。</p><p><b> 第5章 改進(jìn)部分</b></p><p><b> 5.1加登陸界面 </b></p><p> 5.1.1登陸界面設(shè)計(jì)</p><p> 用戶登陸界面圖如圖
61、如圖5.1.1和圖5.1.2所示:</p><p> 圖5.1.1 用戶登錄模塊框圖</p><p> 圖5.1.2 用戶登陸界面</p><p> LoginIn的作用是檢測用戶登陸的合法性,并確認(rèn)用戶輸入了合法的登錄名和口令</p><p><b> 部分代碼:</b></p><p&g
62、t; class LoginIn extends JFrame {</p><p> EditorDemo edit;</p><p> LoginIn login;</p><p> JTextField f1;</p><p> JTextField f2;</p><p> JButton b1;&l
63、t;/p><p> JButton b2;</p><p> String power;// 表示權(quán)限</p><p> String imgePath = "e:/workspace/GUI/14.gif";</p><p> JPanel p5;</p><p> Image img =
64、Toolkit.getDefaultToolkit().createImage(imgePath);</p><p> LoginIn(EditorDemo edit) {</p><p> this.edit = edit;</p><p> login = this;</p><p> Container cp = getCont
65、entPane();</p><p> Label l1 = new Label("用戶:");</p><p> Label l2 = new Label("密碼:");</p><p> JPanel p1 = new JPanel();</p><p> JPanel p2 = new J
66、Panel();</p><p> JPanel p3 = new JPanel();</p><p> JPanel p4 = new JPanel();</p><p> p5 = new JPanel() {</p><p> protected void paintChildren(Graphics g) {</p>
67、;<p> g.drawImage(img, 0, 0, this);</p><p> super.paintChildren(g);</p><p><b> }</b></p><p><b> };</b></p><p> f1 = new JTextField(1
68、5);</p><p> f2 = new JPasswordField(15);</p><p> b1 = new JButton("登錄");</p><p> b2 = new JButton("重置");</p><p> p1.setBackground(Color.orange);
69、</p><p> p2.add(l1);</p><p> p2.add(f1);</p><p> p2.setBorder(new MatteBorder(0, 0, 0, 0, Color.BLACK));</p><p> p2.setBackground(Color.ORANGE);</p><p>
70、; p3.add(l2);</p><p> p3.add(f2);</p><p> p3.setBackground(Color.ORANGE);</p><p> p3.setBorder(new MatteBorder(0, 0, 0, 0, Color.BLACK));</p><p> p4.add(b1);</p
71、><p> p4.add(b2);</p><p> p4.setBorder(new MatteBorder(-3, -3, -3, -3, Color.CYAN));</p><p> p4.setBackground(Color.ORANGE);</p><p> p5.setLayout(new FlowLayout(FlowLa
72、yout.CENTER, 20, 20));</p><p> p5.add(p2);</p><p> p5.add(p3);</p><p> p5.add(p4);</p><p> cp.add(p5, BorderLayout.CENTER);</p><p> b1.addActionListen
73、er(new Enter());</p><p> b2.addActionListener(new ReWrite());</p><p> addWindowListener(new winClose());</p><p><b> }</b></p><p> class Enter implements
74、 ActionListener {</p><p> public void actionPerformed(ActionEvent e) {</p><p> if ((f1.getText()).equals("admin") && (f2.getText()).equals("123")) {</p><
75、p> JOptionPane.showMessageDialog(null, "登錄成功!用戶權(quán)限是adimistrator");</p><p> power = "adminstrator";</p><p> login.setVisible(false);</p><p> edit.setVisible
76、(true);</p><p> } else if ((f1.getText()).equals("snake")</p><p> && (f2.getText()).equals("123456")) {</p><p> JOptionPane.showMessageDialog(null, &q
77、uot;登錄成功!登錄成功!用戶權(quán)限是user");</p><p> power = "adminstrator";</p><p><b> } else</b></p><p> JOptionPane.showMessageDialog(null, "登錄失敗,請重新登錄!");&
78、lt;/p><p><b> }</b></p><p><b> }</b></p><p> class ReWrite implements ActionListener {</p><p> public void actionPerformed(ActionEvent e) {<
79、/p><p> f1.setText("");</p><p> f2.setText("");</p><p> f1.requestFocus();</p><p><b> }</b></p><p><b> }</b>&
80、lt;/p><p> class winClose extends WindowAdapter {</p><p> public void windowClosing(WindowEvent e) {</p><p> (e.getWindow()).dispose();</p><p> System.exit(0);</p&g
81、t;<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 5.1.2 系統(tǒng)主界面</p><p><b> 登陸成功界面:</b></p><
82、p> 圖5.2登陸成功界面</p><p> 登陸成功后彈出記事本界面:</p><p> 圖5.2 系統(tǒng)主界面</p><p><b> 第6章 結(jié)束語</b></p><p> 由于計(jì)算機(jī)的普及,各行業(yè)、各單位都有計(jì)算機(jī)軟件系統(tǒng)的應(yīng)用。該程序所體現(xiàn)的記事本功能為相關(guān)記事本的操作和管理帶來諸多方便,提高
83、了工作效率。</p><p> 本課程設(shè)計(jì)的記事本通過在JAVA平臺(tái)編譯、運(yùn)行源代碼,打開計(jì)算本窗口,在編輯區(qū)進(jìn)行文本的輸入,可以使用剪切、拷貝、粘貼等功能鍵,當(dāng)文本輸入完畢后點(diǎn)擊“文件”菜單,選擇下拉菜單中的“保存文本”打開“保存”窗口,選擇保存文件的根目錄進(jìn)行保存。當(dāng)需要關(guān)閉窗口時(shí)可通過“文件”菜單下的“退出系統(tǒng)”選項(xiàng),或者選擇“工具欄”中的“退出系統(tǒng)”按鈕,也可以直接點(diǎn)擊窗口右上角的關(guān)閉圖標(biāo)進(jìn)行關(guān)閉。&l
84、t;/p><p> 經(jīng)過java記事本的課程設(shè)計(jì),收獲到了很多,加深了對(duì)Java語言的理論知識(shí)的理解;更加熟練的掌握了Java語言的設(shè)計(jì)能力并且有了實(shí)踐經(jīng)驗(yàn);在設(shè)計(jì)過程中,學(xué)到了許多在課堂上沒有教授的知識(shí);加強(qiáng)了對(duì)Java語言的學(xué)習(xí)興趣和好感。</p><p><b> 附錄 源代碼</b></p><p><b> 程序源代碼:&
85、lt;/b></p><p><b> //記事本</b></p><p> import java.awt.BorderLayout;</p><p> import java.awt.Color;</p><p> import java.awt.Container;</p><p&
86、gt; import java.awt.FlowLayout;</p><p> import java.awt.Font;</p><p> import java.awt.Graphics;</p><p> import java.awt.Image;</p><p> import java.awt.Label;</p
87、><p> import java.awt.Toolkit;</p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> import java.awt.event.WindowAdapter;<
88、;/p><p> import java.awt.event.WindowEvent;</p><p> import java.io.File;</p><p> import java.io.FileInputStream;</p><p> import java.io.FileOutputStream;</p>&l
89、t;p> import java.io.InputStream;</p><p> import javax.swing.AbstractAction;</p><p> import javax.swing.Action;</p><p> import javax.swing.JButton;</p><p> impor
90、t javax.swing.JFileChooser;</p><p> import javax.swing.JFrame;</p><p> import javax.swing.JLabel;</p><p> import javax.swing.JMenu;</p><p> import javax.swing.JMenu
91、Bar;</p><p> import javax.swing.JMenuItem;</p><p> import javax.swing.JOptionPane;</p><p> import javax.swing.JPanel;</p><p> import javax.swing.JPasswordField;<
92、/p><p> import javax.swing.JTextField;</p><p> import javax.swing.JTextPane;</p><p> import javax.swing.JToolBar;</p><p> import javax.swing.border.MatteBorder;</p&
93、gt;<p> import javax.swing.text.DefaultEditorKit.CopyAction;</p><p> import javax.swing.text.DefaultEditorKit.CutAction;</p><p> import javax.swing.text.DefaultEditorKit.PasteAction;&l
94、t;/p><p> import javax.swing.text.DefaultStyledDocument;</p><p> public class EditorDemo extends JFrame {</p><p> JTextPane textPane = new JTextPane(); // 文本窗格,編輯窗口</p><p
95、> JLabel statusBar = new JLabel(); // 狀態(tài)欄</p><p> JFileChooser filechooser = new JFileChooser(); // 文件選擇器</p><p> public EditorDemo() { // 構(gòu)造函數(shù)</p><p> super("簡易記事本"
96、;); // 調(diào)用父類構(gòu)造函數(shù)</p><p> Action[] actions = // Action數(shù)組,各種操作命令</p><p> { new NewAction(), new OpenAction(), new SaveAction(), new CutAction(),</p><p> new CopyAction(), new PasteA
97、ction(), new AboutAction(),</p><p> new ExitAction(), };</p><p> setJMenuBar(createJMenuBar(actions)); // 設(shè)置菜單欄</p><p> Container container = getContentPane(); // 得到容器</p>
98、<p> container.add(createJToolBar(actions), BorderLayout.NORTH); // 增加工具欄</p><p> container.add(textPane, BorderLayout.CENTER); // 增加文本窗格</p><p> container.add(statusBar, BorderLayout.S
99、OUTH); // 增加狀態(tài)欄</p><p> setSize(500, 400); // 設(shè)置窗口尺寸</p><p> //setVisible(true); // 設(shè)置窗口可視</p><p> setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 關(guān)閉窗口時(shí)退出程序</p><p
100、><b> }</b></p><p> private JMenuBar createJMenuBar(Action[] actions) { // 創(chuàng)建菜單欄</p><p> JMenuBar menubar = new JMenuBar(); // 實(shí)例化菜單欄</p><p> JMenu menuFile = new
101、JMenu("文件(F)"); // 實(shí)例化菜單</p><p> JMenu menuEdit = new JMenu("編輯(E)");</p><p> JMenu menuFormat = new JMenu("格式(O)");</p><p> JMenu menuFind = new JM
102、enu("查找(V)");</p><p> JMenu menuAbout = new JMenu("幫助(H)");</p><p> menuFile.add(new JMenuItem(actions[0])); // 增加新菜單項(xiàng)</p><p> menuFile.add(new JMenuItem(acti
103、ons[1]));</p><p> menuFile.add(new JMenuItem(actions[2]));</p><p> menuFile.addSeparator();</p><p> menuFile.add(new JMenuItem(actions[7]));</p><p> menuEdit.add(ne
104、w JMenuItem(actions[3]));</p><p> menuEdit.add(new JMenuItem(actions[4]));</p><p> menuEdit.add(new JMenuItem(actions[5]));</p><p> menuAbout.add(new JMenuItem(actions[6]));</
105、p><p> menubar.add(menuFile); // 增加菜單</p><p> menubar.add(menuEdit);</p><p> menubar.add(menuFormat);</p><p> menubar.add(menuFind);</p><p> menubar.add(
106、menuAbout);</p><p> return menubar; // 返回菜單欄</p><p><b> }</b></p><p> private JToolBar createJToolBar(Action[] actions) { // 創(chuàng)建工具條</p><p> JToolBar tool
107、Bar = new JToolBar(); // 實(shí)例化工具條</p><p> for (int i = 0; i < actions.length; i++) {</p><p> JButton bt = new JButton(actions[i]); // 實(shí)例化新的按鈕</p><p> bt.setRequestFocusEnabled(f
108、alse); // 設(shè)置不需要焦點(diǎn)</p><p> bt.setFont(new Font("宋體", Font.PLAIN, 12));</p><p> bt.setBackground(Color.pink);</p><p> toolBar.add(bt); // 增加按鈕到工具欄</p><p><
109、;b> }</b></p><p> return toolBar; // 返回工具欄</p><p><b> }</b></p><p> class NewAction extends AbstractAction { // 新建文件命令</p><p> public NewActio
110、n() {</p><p> super("新建文本");</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> textPane.setDocument(new DefaultSty
111、ledDocument()); // 清空文檔</p><p><b> }</b></p><p><b> }</b></p><p> class OpenAction extends AbstractAction { // 打開文件命令</p><p> public OpenAct
112、ion() {</p><p> super("打開文本");</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> int i = filechooser.showOpenDialo
113、g(EditorDemo.this); // 顯示打開文件對(duì)話框</p><p> if (i == JFileChooser.APPROVE_OPTION) { // 點(diǎn)擊對(duì)話框中打開選項(xiàng)</p><p> File f = filechooser.getSelectedFile(); // 得到選擇的文件</p><p><b> try {&l
114、t;/b></p><p> InputStream is = new FileInputStream(f); // 得到文件輸入流</p><p> textPane.read(is, "d"); // 讀入文件到文本窗格</p><p> } catch (Exception ex) {</p><p>
115、 ex.printStackTrace(); // 輸出出錯(cuò)信息</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><
116、p> class SaveAction extends AbstractAction { // 保存命令</p><p> public SaveAction() {</p><p> super("保存文本");</p><p><b> }</b></p><p> public
117、void actionPerformed(ActionEvent e) {</p><p> int i = filechooser.showSaveDialog(EditorDemo.this); // 顯示保存文件對(duì)話框</p><p> if (i == JFileChooser.APPROVE_OPTION) { // 點(diǎn)擊對(duì)話框中保存按鈕</p><p&g
118、t; File f = filechooser.getSelectedFile(); // 得到選擇的文件</p><p><b> try {</b></p><p> FileOutputStream out = new FileOutputStream(f); // 得到文件輸出流</p><p> out.write(textP
119、ane.getText().getBytes()); // 寫出文件</p><p> } catch (Exception ex) {</p><p> ex.printStackTrace(); // 輸出出錯(cuò)信息</p><p><b> }</b></p><p><b> }</b>
120、;</p><p><b> }</b></p><p><b> }</b></p><p> class ExitAction extends AbstractAction { // 退出命令</p><p> public ExitAction() {</p><p
121、> super("退出系統(tǒng)");</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> System.exit(0); // 退出程序</p><p><b> }&
122、lt;/b></p><p><b> }</b></p><p> class CutAction extends AbstractAction { // 剪切命令</p><p> public CutAction() {</p><p> super("剪切");</p>
123、;<p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> textPane.cut(); // 調(diào)用文本窗格的剪切命令</p><p><b> }</b></p><p>&l
124、t;b> }</b></p><p> class CopyAction extends AbstractAction { // 拷貝命令</p><p> public CopyAction() {</p><p> super("拷貝");</p><p><b> }</b
125、></p><p> public void actionPerformed(ActionEvent e) {</p><p> textPane.copy(); // 調(diào)用文本窗格的拷貝命令</p><p><b> }</b></p><p><b> }</b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)--日歷記事本
- java課程設(shè)計(jì)日歷記事本
- java課程設(shè)計(jì)--日歷記事本
- 日歷記事本-java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)論文
- java記事本程序課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--- 記事本程序設(shè)計(jì)
- 基于java的記事本程序課程設(shè)計(jì)
- java課程設(shè)計(jì)報(bào)告--實(shí)現(xiàn)記事本功能
- 基于java的記事本程序課程設(shè)計(jì)
- java課程設(shè)計(jì)---設(shè)計(jì)一個(gè)記事本
- java語言課程設(shè)計(jì)---記事本程序設(shè)計(jì)
- java記事本課程設(shè)計(jì)
- java課程設(shè)計(jì)--簡單記事本程序的設(shè)計(jì)
- java記事本課程設(shè)計(jì)
- java課程設(shè)計(jì)---基于java的記事本軟件設(shè)計(jì)
- java記事本課程設(shè)計(jì)報(bào)告
- java記事本課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--編寫一個(gè)記事本程序
評(píng)論
0/150
提交評(píng)論