


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ì)容1第2章記事本系統(tǒng) 22.1記事本概述22.2記事本的任務(wù)及目的22.3本章小結(jié)2第3章記事本的設(shè)計(jì) 33.1系統(tǒng)需求分析 33.2系統(tǒng)開發(fā)及運(yùn)行環(huán)境錯(cuò)誤!未定義書簽。3.3記事本總體結(jié)構(gòu)(流程圖) 33.4記事本系統(tǒng)各模塊介紹43.5本章小結(jié)4第4章系統(tǒng)的具體實(shí)現(xiàn) 54.1窗口設(shè)計(jì)54.2程序功能設(shè)計(jì)及調(diào)試運(yùn)行 6在下拉菜單中加入子菜單并進(jìn)行監(jiān)聽,分別實(shí)現(xiàn)對(duì)文件的操作功能。點(diǎn)擊不同菜單項(xiàng)時(shí),顯示不同接口。 7加入工具欄的功能鍵,通過工具欄實(shí)現(xiàn)對(duì)文本的基本操作。 94.3本章小結(jié)16第5章改進(jìn)部分165.1加登陸界面16登陸界面設(shè)計(jì)16系統(tǒng)主界面20第6
2、章結(jié)束語(yǔ)21附錄源代碼22第1章引言1.1背景在文本編輯器出現(xiàn)前,人們用打孔機(jī)把計(jì)算機(jī)文字打到穿孔卡片上。文字存 放于一個(gè)裝著這樣的薄卡片的盒子里,可以用讀卡器來閱讀它。第一個(gè)文本編輯器是一種行編輯器,它運(yùn)行在打字機(jī)型的終端上,這種編輯 器并不具備在窗口和屏幕中顯示的功能。它包含了一些非常短的命令(為了減少 打字量)。其中一個(gè)命令能夠把文件的指定部分通過打字機(jī)打印出來。編輯光標(biāo)是想象中的一個(gè)插入點(diǎn),通過特殊命令,可以把它移動(dòng)到特定容字符串所在的行。 隨后,容字符串又被擴(kuò)展成正則表達(dá)式。如果想看到文件的變化,你需要把它打 印出來。相對(duì)于穿孔機(jī)來說,人們認(rèn)為這種基于行的文本編輯器具有革命性的進(jìn) 步
3、。如果沒有它,用戶就需要把那些處理文本的命令打成專用的卡片,并在編輯 文件時(shí)使用這些卡片。當(dāng)帶有顯示屏的計(jì)算機(jī)終端出現(xiàn)后,基于顯示屏的文本編輯器開始流行起來。 最早的全屏編輯器中,有一種叫做 026它是于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ì)容記事本充分發(fā)揮文本編輯的優(yōu)勢(shì),通過各種操作的有機(jī)結(jié)合,實(shí)現(xiàn)文本編輯 的各項(xiàng)所需功能。本程序的研究容涉及記事本功能實(shí)現(xiàn)的全過程。該記事本功能包含以下容:(1)打開文件,讀取
4、文件中的文本信息:對(duì)原有文件可實(shí)行打開操作,并能 讀取文件中的容,以方便對(duì)文件的查看,修改等任務(wù)。(2)顯示、編輯修改文本信息:記事本對(duì)文字信息的主要處理功能??蓪?duì)相 關(guān)信息進(jìn)行復(fù)制,剪切,粘貼等操作。(3)實(shí)現(xiàn)新建、保存文本文件:新建文本可以使用戶寫入新的信息,文件保 存后再次打開仍可獲得原有信息。第2章記事本系統(tǒng)2.1記事本概述記事本是一種只能處理純文本的文件。由于多種格式源代碼都是純文本的, 所以記事本也就成為了使用最多的源代碼編輯器。它只具備最基本的編輯功能, 所以體積小巧,啟動(dòng)快,占用存低,容易使用。“記事本”的功能雖然連“寫字板”都比不上,但它還是有它自己的獨(dú)門絕技的。下面我們就來
5、看看記事本吧。 相對(duì)于微軟的 Word來說“記事本”的功能確實(shí)是太單薄了,只有:新建,保存, 打印,查找,替換這幾個(gè)功能。但是“記事本”卻擁有一個(gè) Word不可能擁有的優(yōu) 點(diǎn):打開速度快,文件小。我相信對(duì)于這一點(diǎn)大家一定是深有感觸地,一點(diǎn)就打 開;同樣的文本文件用 Word保存和用記事本保存的文件大小就大不相同,所以對(duì)于大小在64KB以下的純文本的保存最好還是米用記事本。 記事本另一項(xiàng)不可取代 的功能是:可以保存無(wú)格式文件。你可以把記事本編輯的文件保存為:“.html ”.“.java ”,“.asp ”等等任意格式。這使得“記事本”又找到了一個(gè)新的用途: 作為程序語(yǔ)言的編輯器。翻開任何一本介
6、紹一門編程語(yǔ)言的入門教材,里面都會(huì) 建議學(xué)生在記事本中編寫源程序。記事本使用的一個(gè)老竅門,在記事本文件的開 頭輸入:“丄0G'之后你每次打開這個(gè)文件就會(huì)在自動(dòng)的紀(jì)錄下文本打開的時(shí)間。2.2記事本的任務(wù)及目的打開計(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)閉。2.3本章小結(jié)記事本是一種只能處理純文本的文件。 可以
7、通過菜單欄和工具欄實(shí)現(xiàn)以下功能: 如文件的新建,打開,保存和退出;對(duì)文件的編輯,如復(fù)制,剪切,粘貼;以及 幫助菜單;執(zhí)行完操作后,能夠順利關(guān)閉記事本。第3章記事本的設(shè)計(jì)這一章時(shí)進(jìn)銷存管理系統(tǒng)的設(shè)計(jì),從系統(tǒng)需求分析開始,介紹開發(fā)環(huán)境和用到的開發(fā)工具,系統(tǒng)主要的功能設(shè)計(jì),系統(tǒng)的數(shù)據(jù)流程圖3.1系統(tǒng)需求分析記事本的設(shè)計(jì)目標(biāo)為:打開計(jì)算本窗口,在編輯區(qū)進(jìn)行文本的輸入, 可以使用剪切、拷貝、粘貼等 功能鍵,當(dāng)文本輸入完畢后點(diǎn)擊“文件”菜單,選擇下拉菜單中的“保存文本” 打開“保存”窗口,選擇保存文件的根目錄進(jìn)行保存。當(dāng)需要關(guān)閉窗口時(shí)可通過“文件”菜單下的“退出系統(tǒng)”選項(xiàng),或者選擇“工具欄”中的“退出系統(tǒng)
8、”按 鈕,也可以直接點(diǎn)擊窗口右上角的關(guān)閉圖標(biāo)進(jìn)行關(guān)閉。3.2記事本總體結(jié)構(gòu)(流程圖)記事本閉 關(guān)避出系統(tǒng)直按關(guān)閉記事本圖3.1系統(tǒng)功能結(jié)構(gòu)圖3.3記事本系統(tǒng)各模塊介紹系統(tǒng)各功能模塊實(shí)現(xiàn)的功能為:新建記事本:在文件的下拉菜單中點(diǎn)擊新建文本或單擊工具欄中的新建文本, 將文本刷新。打開原有的記事本:在文件的下拉菜單中點(diǎn)擊打開文本或單擊工具欄中的打 開文本,再選中原有的記事本,單擊打開按鈕,便將原有文本打開??截悾合冗x中需復(fù)制的文本,在編輯的下拉菜單中點(diǎn)擊拷貝或單擊工具欄中 的拷貝,便將所選文本復(fù)制了。粘貼:在編輯的下拉菜單中點(diǎn)擊粘貼或單擊工具欄中的粘貼,便將所復(fù)制的 文本粘貼到需粘貼的地方。剪貼:先
9、選中需剪貼的文本,在編輯的下拉菜單中點(diǎn)擊剪貼或單擊工具欄中 的剪貼,便將所選文本剪貼了。保存:在文件的下拉菜單中點(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 cla
10、ss EditorDemo exte nds JFrameJTextPa ne textPa ne = new JTextPa ne(); /創(chuàng)建文本窗格,編輯窗口JFileChooser filechooser = new JFileChooser(); /文件選擇器setJMe nuBar(createJMe nuBar(actio ns); /設(shè)置菜單欄Container container = getC onten tPa ne(); /得至 U容器con tai ner.add(createJToolBar(actio ns), BorderLayout.NORTH); /工具欄co
11、n tai ner.add(textPa ne, BorderLayout.CENTER); /增加文本窗格窗口設(shè)計(jì)流程圖:圖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)過反復(fù) 調(diào)試修改,以達(dá)到系統(tǒng)功能要求。這個(gè)過程具有大量的工作量,應(yīng)仔細(xì)對(duì)每個(gè)程 序細(xì)節(jié)進(jìn)行分析思考、編寫程序并調(diào)試,做到程序簡(jiǎn)潔清楚,盡量避免可能潛在 的程序錯(cuò)誤,并在必要的地方加以注釋,以便于程序閱讀和修改。421在下拉菜單中加入子菜單并進(jìn)行監(jiān)聽, 分別實(shí)現(xiàn)對(duì)文件的操作功 能。點(diǎn)擊不同菜
12、單項(xiàng)時(shí),顯示不同接口。部分代碼:private JMe nuBar createJMe nuBar(Acti on actio ns) JMe nuBar men ubar = new JMe nuBar(); JMenu menuFile = new JMenu("文件(F)");JMe nu me nuEdit = new JMe nu( 編輯(E)");JMe nu men uFormat = new JMe nu(格式(O)");JMe nu me nuFi nd = new JMe nu( 查找(V)"); JMe nu menu A
13、bout = new JMe nu("幫助(H)"); menu File.add( new JMe nultem(actio ns0); menu File.add( new JMe nuItem(actio ns1); menu File.add( new JMe nultem(actio ns2); menu File.addSeparator();menu File.add( new JMe nultem(actio ns7); men uEdit.add( new JMe nultem(acti on s3); men uEdit.add( new JMe nul
14、tem(acti on s4); men uEdit.add( new JMe nultem(acti on s5); menu About.add( new JMe nultem(actio ns6); menu bar.add(me nu File);menu bar.add(me nuEdit); menu bar.add(me nuF ormat);menu bar.add(me nuFin d); menu bar.add(me nu About);retur n men ubar;II創(chuàng)建菜單欄/實(shí)例化菜單欄實(shí)例化菜單增加新菜單項(xiàng)II增加菜單II返回菜單欄實(shí)現(xiàn)對(duì)文件的操作功能流程圖
15、:如下圖:圖4.2實(shí)現(xiàn)操作功能框圖圖421文件菜單功能生成界面圖422編輯菜單功能生成界面圖423幫助菜單功能生成界面加入工具欄的功能鍵,通過工具欄實(shí)現(xiàn)對(duì)文本的基本操作關(guān)鍵代碼:Actio n actio ns =/Actio n 數(shù)組,各種操作命令new NewActio n(),new Open Acti on(),new SaveAct ion(),new CutActio n(),new CopyActio n(),new PasteAct ion(),new AboutActio n(),new ExitAct ion(),private JToolBar createJToolBa
16、r(Actio n actio ns) /創(chuàng)建工具條 JToolBar toolBar = new JToolBar(); 實(shí)例化工具條 JButton bt = new JButto n(actio nsi); / 實(shí)例化新的按鈕 toolBar.add(bt); 增加按鈕到工具欄如圖所示:新建文本打開立本保存矣本剪切拷貝粘貼版本退出系統(tǒng)423對(duì)每個(gè)菜單項(xiàng)進(jìn)行注冊(cè)監(jiān)聽。點(diǎn)擊不同功能鍵時(shí),實(shí)現(xiàn)不同的操 作,顯示不同的窗口。主要實(shí)現(xiàn)方法代碼如下:class NewAction exte nds AbstractAction / 實(shí)現(xiàn)新建文件命令功能 public NewActio n() sup
17、er("新建文本");public void actio nPeformed(Actio nEve nt e) textPa ne.setDocume nt( new DefaultStyledDocume nt();清空文檔class Ope nAction exte nds AbstractAction /實(shí)現(xiàn)打開文件命令功能 public OpenAction() super("打開文本");public void actio nPeformed(Actio nEve nt e) int i = filechooser.showOpenDialog
18、(EditorDemo.this);/顯示打開文件對(duì)話框if (i = JFileChooser.APPROVE_OPTION) /點(diǎn)擊對(duì)話框中打開選項(xiàng)File f = filechooser.getSelectedFile(); /得到選擇的文件try In putStream is = new FileI nputStream(f); /得到文件輸入流 textPa ne.read(is, "d"); /讀入文件到文本窗格 catch (Exceptio n ex) ex.printStackTrace(); /輸出出錯(cuò)信息如下圖:圖424打開文件生成界面class S
19、aveAction exte nds AbstractAction /實(shí)現(xiàn)保存文本命令public SaveActi on() super("保存文本");public void actio nPeformed(Actio nEve nt e) int i = filechooser.showSaveDialog(EditorDemo.this);/顯示保存文件對(duì)話框if (i = JFileChooser.APPROVE_OPTION) /點(diǎn)擊對(duì)話框中保存按鈕File f = filechooser.getSelectedFile(); /得到選擇的文件try FileO
20、utputStream out = new FileOutputStream(f);/得到文件輸出流out.write(textPa ne.getText().getBytes(); /寫出文件 catch (Exceptio n ex) ex.pri ntStackTrace(); /輸出出錯(cuò)信息 如下圖:圖431保存文件生成界面class ExitAction exte nds AbstractActio n /實(shí)現(xiàn)退出命令public ExitAction() super(”退出系統(tǒng)");public void actio nPeformed(Actio nEve nt e)
21、System.exit(O); /退出程序class CutActio n exte nds AbstractAction /實(shí)現(xiàn)剪切命令public CutAction() super("剪切");public void actio nPeformed(Actio nEve nt e) textPane.cut(); /調(diào)用文本窗格的剪切命令class CopyAction exte nds AbstractActio n /實(shí)現(xiàn)拷貝命令public CopyActi on() super("拷貝");public void action Perfor
22、med(Acti on Eve nt e)textPa ne.copy(); /調(diào)用文本窗格的拷貝命令class PasteActio n exte nds AbstractAction /實(shí)現(xiàn)粘貼命令public PasteActio n() super("粘貼");public void actio nPeformed(Actio nEve nt e) textPane.paste(); /調(diào)用文本窗格的粘貼命令class AboutActi on exte nds AbstractAct ion /關(guān)于版本命令public AboutAction() super(&q
23、uot;版本");public void actio nPeformed(Actio nEve nt e) String str=" 記事本 版本:1.0n n 主要功能:實(shí)現(xiàn)簡(jiǎn)單文本編輯。JOptionPane.showMessageDialog(EditorDemo.this, str); /顯示軟件信息如下圖:圖425顯示版本界面生成圖類向?qū)У裙δ堋?第一次啟動(dòng)時(shí)提示設(shè)置JavaJDK主目錄及JDKJavaDoc目錄,軟件自動(dòng)設(shè)置好類路徑、編譯器及解釋器路徑,還可以在幫助菜單中使用JDKHelp。系統(tǒng)調(diào)試分析1:窗口調(diào)試確定主窗體,設(shè)置主窗體的屬性,對(duì)窗體進(jìn)行布局,加
24、入所需控件并對(duì)控件進(jìn)行 初始化。在完成所有方法的源代碼編輯后,對(duì)程序進(jìn)行編譯、運(yùn)行!會(huì)出現(xiàn)窗體 如下圖:圖426編譯運(yùn)行程序生成界面2 :功能調(diào)試對(duì)所有菜單項(xiàng)進(jìn)行注冊(cè)監(jiān)聽。在編寫觸發(fā)事件時(shí)執(zhí)行各項(xiàng)操作,包括了一些常 用部分的事件處理,實(shí)現(xiàn)各功能鍵的操作。例如 當(dāng)點(diǎn)擊“文件“按鈕是顯示如下 窗口:圖427文件按鈕實(shí)現(xiàn)生成界面當(dāng)需要打開已存在的文件時(shí),點(diǎn)擊“打開文本”按鈕會(huì)出現(xiàn)如下窗口:文件(F)歸輯舊格式(0)直找(V)幫助(H)圖4210保存文本界面圖428打開文件按鈕實(shí)現(xiàn)生成界面當(dāng)輸入完文本是要保存的話,點(diǎn)擊“保存文本”會(huì)出現(xiàn)下面的窗口:訂嶄建文科扔f文本保存文本哩囲 槌序是利用剛澀序設(shè)計(jì)語(yǔ)
25、言編寫滬懾 單的淄本程尿可媚過菜單揀工具攔 賣現(xiàn)以下血訂如文件的新律,打那保存 和退出;對(duì)丈件的編輯,如復(fù)制嘉亦粘 貼;IO幫助赭;執(zhí)行完離后準(zhǔn)齣圖429輸入文本界面依次調(diào)試其他功能鍵及窗口,直至達(dá)到符合要求的能實(shí)現(xiàn)簡(jiǎn)易的記事本的功能!4.3本章小結(jié)本章介紹了系統(tǒng)的具體實(shí)現(xiàn)和部分關(guān)鍵代碼,其中包括如何實(shí)現(xiàn)新建文件, 打開文件,保存文件,退出系統(tǒng)以及剪切,拷貝,粘貼等具體操作。第5章改進(jìn)部分5.1加登陸界面登陸界面設(shè)計(jì)用戶登陸界面圖如圖如圖和圖所示:圖用戶登錄模塊框圖圖用戶登陸界面Loginln的作用是檢測(cè)用戶登陸的合法性,并確認(rèn)用戶輸入了合法的登錄名和口令部分代碼:class Log inIn
26、 exte nds JFrame EditorDemo edit;Logi nln log in;JTextField f1;JTextField f2;JButton b1;JButton b2;Stri ng power;/ 表示權(quán)限Stri ng imgePath = "e:/workspace/GUI/14.gif"JPa nel p5;Image img = Toolkit.getDefaultToolkit().createlmage(imgePath); Log inln( EditorDemo edit) this.edit = edit;logi n =
27、this;Container cp = getC onten tPa ne();Label l1 = new Label("用戶:");Label l2 = new Label("密碼:");JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPa nel p3 = new JPa nel();JPanel p4 = new JPan el();p5 = new JPa nel() protected void pain tChildre n( Graphics g) g.drawlmage(img, 0
28、, 0, this); super.pa in tChildre n( g);f1 = new JTextField(15);f2 = new JPasswordField(15);b1 = new JButt on("登錄");b2 = new JButt on("重置");p1.setBackgro un d(Color.ora nge); p2.add(l1);p2.add(f1);p2.setBorder( new MatteBorder(0, 0, 0, 0, Color.BLACK); p2.setBackgrou nd(Color.ORAN
29、GE);p3.add(l2);p3.add(f2);p3.setBackgrou nd(Color.ORANGE);p3.setBorder( new MatteBorder(0, 0, 0, 0, Color.BLACK); p4.add(b1);p4.add(b2);p4.setBorder( new MatteBorder(-3, -3, -3, -3, Color.CYAN); p4.setBackgrou nd(Color.ORANGE);p5.setLayout( new FlowLayout(FlowLayout.CENTER, 20, 20); p5.add(p2);p5.ad
30、d(p3);p5.add(p4);cp.add(p5, BorderLayout.CENTER);b1.addActi on Liste ner(new En ter();b2.addActio nListe ner(new ReWrite(); addWi ndowListe ner(new wi nClose();class En ter impleme nts Actio nListe ner public void actio nPeformed(Actio nEve nt e) if (f1.getText().equals("admin") &&
31、 (f2.getText().equals("123") JOptionPane.showMessageDialog(null,"登錄成功!用戶權(quán)限是 adimistrator");power = "admi nstrator"log in .setVisible(false);edit.setVisible(true); else if (f1.getText().equals("s nake")&& (f2.getText().equals("123456") JOption
32、Pane.showMessageDialog(null,"登錄成功!登錄成功!用戶 權(quán)限是user");power = "admi nstrator" elseJOptionPane.showMessageDialog(null,登錄失敗,請(qǐng)重新登錄!");class ReWrite impleme nts Actio nListe ner public void actio nPeformed(Actio nEve nt e) f1.setText("");f2.setText(""); f1.requ
33、estFocus();class wi nClose exte nds Win dowAdapter public void win dowClos in g(Wi ndowEve nt e) (e.getWi ndow().dispose(); System.exit(O);系統(tǒng)主界面登陸成功界面:圖5.2登陸成功界面登陸成功后彈出記事本界面:圖5.2系統(tǒng)主界面第6章結(jié)束語(yǔ)由于計(jì)算機(jī)的普及,各行業(yè)、各單位都有計(jì)算機(jī)軟件系統(tǒng)的應(yīng)用。該程序所 體現(xiàn)的記事本功能為相關(guān)記事本的操作和管理帶來諸多方便,提高了工作效率。本課程設(shè)計(jì)的記事本通過在JAVA平臺(tái)編譯、運(yùn)行源代碼,打開計(jì)算本窗口, 在編輯區(qū)進(jìn)行
34、文本的輸入,可以使用剪切、拷貝、粘貼等功能鍵,當(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)閉。經(jīng)過java記事本的課程設(shè)計(jì),收獲到了很多,加深了對(duì) Java語(yǔ)言的理論知識(shí) 的理解;更加熟練的掌握了 Java語(yǔ)言的設(shè)計(jì)能力并且有了實(shí)踐經(jīng)驗(yàn);在設(shè)計(jì)過程 中,學(xué)到了許多在課堂上沒有教授的知識(shí);加強(qiáng)了對(duì) Java語(yǔ)言的學(xué)習(xí)興趣和好感。附錄源代碼程序源代碼:/記事本import java.awt.
35、BorderLayout;import java.awt.Color;import java.awt.Co ntainer;import java.awt.FlowLayout;import java.awt.F ont;import java.awt.Graphics;import java.awt.lmage;import java.awt.Label;import java.awt.Toolkit;import java.awt.eve nt.Act ion Eve nt;import java.awt.eve nt.Actio nListe ner;import java.awt.ev
36、e nt.Wi ndowAdapter;import java.awt.eve nt.Wi ndowEve nt;import java.io.File;import java.io.FileI nputStream;import java.io.FileOutputStream;import java.io .In putStream;import javax.swi ng.AbstractActio n;import javax.swi ng.Actio n;import javax.swi ng.J Butt on;import javax.sw in g.JFileChooser;im
37、port javax.sw in g.JFrame;import javax.sw in g.JLabel;import javax.swi ng.JMenu;import javax.sw in g.JMe nuBar;import javax.swi ng.JMen ultem;import javax.swi ng.J Optio nPane;import javax.swi ng.JPan el;import javax.swi ng.J PasswordField;import javax.sw in g.JTextField;import javax.sw in g.JTextPa
38、 ne;import javax.swi ng.J ToolBar;import javax.sw in g.border.MatteBorder;import javax.swi ng.text.DefaultEditorKit.CopyActio n; import javax.swi ng.text.DefaultEditorKit.CutActio n;import javax.swi ng.text.DefaultEditorKit.PasteActio n; import javax.swi ng.text.DefaultStyledDocume nt;public class E
39、ditorDemo exte nds JFrame JTextPa ne textPa ne = new JTextPa ne();文本窗格,編輯窗口JLabel statusBar = new JLabel(); 狀態(tài)欄JFileChooser filechooser = new JFileChooser(); 文件選擇器public EditorDemo() / 構(gòu)造函數(shù)super("簡(jiǎn)易記事本");/調(diào)用父類構(gòu)造函數(shù)Actio n actio ns = / Acti on 數(shù)組,各種操作命令 new NewActio n(), new Ope nActio n(),
40、new SaveActi on(), new CutActio n(), new CopyActio n(), new PasteActio n(), new AboutActio n(), new ExitActio n(), ;setJMe nuBar(createJMe nuBar(actio ns); / 設(shè)置菜單欄Container container = getC onten tPa ne(); 得至 U容器container.add(createJToolBar(actions),BorderLayout.NORTH); / 增加工具 欄container.add(textPan
41、e, BorderLayout.CENTER); / 增加文本窗格con tai ner.add(statusBar, BorderLayout.SOUTH); / 增加狀態(tài)欄 setSize(500, 400); / 設(shè)置窗口尺寸/ setVisible(true); / 設(shè)置窗口可視setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); / 關(guān)閉窗口時(shí)退出 程序_private JMen uBar createJMe nuBar(Actio n actio ns) / 創(chuàng)建菜單欄 JMe nuBar men ubar = new JMe nuBar(
42、); / 實(shí)例化菜單欄 JMenu menuFile = new JMenu(文件(F)"); / 實(shí)例化菜單 JMe nu men uEdit = new JMe nu( 編輯(E)");JMe nu men uFormat = new JMe nu(格式(O)");JMe nu me nuFi nd = new JMe nu( 查找(V)");JMe nu me nu About = new JMe nu( 幫助(H)");men uFile.add( new JMe nultem(actio ns0); / 增加新菜單項(xiàng)menu File
43、.add( new JMe nuItem(actio ns1);menu File.add( new JMe nultem(actio ns2);menu File.addSeparator();menu File.add( new JMe nultem(actio ns7);men uEdit.add( new JMe nultem(acti on s3);men uEdit.add( new JMe nultem(acti on s4);men uEdit.add( new JMe nultem(acti on s5);menu About.add( new JMe nultem(acti
44、 on s6);men ubar.add(me nuFile); / 增加菜單menu bar.add(me nuEdit);menu bar.add(me nuF ormat);menu bar.add(me nuFin d);menu bar.add(me nu About);return men ubar; / 返回菜單欄private JToolBar createJToolBar(Actio n actio ns) / 創(chuàng)建工具條 JToolBar toolBar = new JToolBar(); / 實(shí)例化工具條 for (int i = 0; i < acti ons.l
45、en gth; i+) JButton bt = new JButton(actionsi); / 實(shí)例化新的按鈕 bt.setRequestFocusE nabled(false); 設(shè)置不需要焦點(diǎn) bt.setFont(new Font('宋體",Font.PLAIN, 12); bt.setBackgro un d(Color.p in k);toolBar.add(bt); /增加按鈕到工具欄return toolBar; / 返回工具欄class NewAction extends AbstractAction / 新建文件命令public NewActio n()
46、 super('新建文本");public void actio nPerformed(Actio nEve nt e) textPa ne.setDocume nt(new DefaultStyledDocume nt(); 清空文檔 class Ope nAction exte nds AbstractAction / 打開文件命令public OpenAction() super("打開文本”);public void actio nPeformed(Actio nEve nt e) int i = filechooser.showOpenDialog(Edi
47、torDemo.this); /顯示打開文件 對(duì)話框if (i = JFileChooser.APPROVE_OPTION) / 點(diǎn)擊對(duì)話框中打開選項(xiàng) File f = filechooser.getSelectedFile(); / 得到選擇的文件 try In putStream is = new File In putStream(f); / 得到文件輸入流 textPa ne.read(is, "d"); /讀入文件到文本窗格 catch (Exceptio n ex) ex.pri ntStackTrace(); / 輸出出錯(cuò)信息class SaveAct ion
48、 exte nds AbstractAct ion / 保存命令public SaveActi on() super("保存文本");public void actio nPeformed(Actio nEve nt e) int i = filechooser.showSaveDialog(EditorDemo.this); / 顯示保存文件 對(duì)話框if (i = JFileChooser.APPROVE_OPTION) / 點(diǎn)擊對(duì)話框中保存按鈕 File f = filechooser.getSelectedFile(); / 得到選擇的文件 try FileOutpu
49、tStream out = new FileOutputStream(f); / 得到文件 輸出流out.write(textPa ne.getText().getBytes(); / 寫出文件 catch (Exceptio n ex) ex.pri ntStackTrace(); / 輸出出錯(cuò)信息class ExitAction extends AbstractAction / 退出命令 public ExitAction() super("退出系統(tǒng)");public void actio nPeformed(Actio nEve nt e) System.exit(O
50、); / 退出程序class CutActio n exte nds AbstractAction / 剪切命令public CutAction() super("剪切");public void actio nPeformed(Actio nEve nt e) textPa ne.cut(); /調(diào)用文本窗格的剪切命令class CopyAction exte nds AbstractAction / 拷貝命令public CopyActi on() super("拷貝");public void actio nPeformed(Actio nEve
51、nt e) textPa ne.copy(); /調(diào)用文本窗格的拷貝命令class PasteActio n exte nds AbstractAction / 粘貼命令public PasteActio n() super("粘貼");public void actio nPeformed(Actio nEve nt e) textPa ne.paste(); /調(diào)用文本窗格的粘貼命令class AboutAction extends AbstractAction / 關(guān)于選項(xiàng)命令public AboutAction() super("版 本");pu
52、blic void actio nPeformed(Actio nEve nt e) String str ="簡(jiǎn)易記事本nn版本:1.0n作者:斌n主要功能:實(shí)現(xiàn) 簡(jiǎn)單文本編輯。"JOptio nPan e.showMessageDialog(EditorDemo.this,str); /顯示軟件信 息public static void main( Stri ng args) Loginln log = new Loginln(new EditorDemo(); log.setTitle(”系統(tǒng)登錄");log.setSize(360, 250);log.se
53、tVisible(true);class Log inIn exte nds JFrame EditorDemo edit;Logi nln log in;JTextField f1;JTextField f2;JButton b1;JButton b2;Stri ng power;/ 表示權(quán)限Stri ng imgePath = "e:/workspace/GUI/14.gif"JPa nel p5;Image img = Toolkit.getDefaultToolkit().createlmage(imgePath);Log inln( EditorDemo edit
54、) this.edit = edit;logi n = this;Con tai ner cp = getCo nte ntPa ne();初始化一個(gè)容器,用來在容器上添加一些控件Label l1 = new Label("用戶:");Label l2 = new Label("密碼:");JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPa nel p3 = new JPa nel();JPanel p4 = new JPan el();p5 = new JPa nel() protected void pain tChildre n( Graphics g) g.drawlmage(img, 0, 0, t
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度家居建材配送承包服務(wù)協(xié)議
- 2025年度智能設(shè)備租賃合同中發(fā)票開具、技術(shù)支持及維護(hù)服務(wù)的約定
- 2025年度校地合作框架協(xié)議-現(xiàn)代服務(wù)業(yè)合作開發(fā)合同
- 二零二五年度股東借款給公司長(zhǎng)期投資及收益共享協(xié)議
- 二零二五年度業(yè)主委托物業(yè)公共區(qū)域清潔維護(hù)合同
- 二零二五年度醫(yī)療機(jī)構(gòu)崗位聘用協(xié)議書(臨床醫(yī)學(xué)專業(yè))
- 2025年度新能源項(xiàng)目墊資合作協(xié)議
- 2025年度無(wú)財(cái)產(chǎn)分割協(xié)議及離婚后共同財(cái)產(chǎn)管理協(xié)議
- 二零二五年度新型商業(yè)綜合體門面租賃服務(wù)合同
- 2025年度輔導(dǎo)班知識(shí)產(chǎn)權(quán)與品牌使用權(quán)轉(zhuǎn)讓合同
- 2024年新課標(biāo)培訓(xùn)2022年小學(xué)英語(yǔ)新課標(biāo)學(xué)習(xí)培訓(xùn)課件
- 中學(xué)八年級(jí)信息技術(shù)Excel-電子表格教案
- 哲學(xué)與人生 第二課 樹立科學(xué)的世界觀2.1
- 巖石破碎型泥水平衡頂管施工工法
- 人教A版(2019)高中數(shù)學(xué)選擇性必修第二冊(cè) 《數(shù)列的相關(guān)概念》教學(xué)設(shè)計(jì)
- 醫(yī)療信息共享與互聯(lián)網(wǎng)醫(yī)療管理制度
- 2024新版有限空間作業(yè)安全大培訓(xùn)
- 九年級(jí)語(yǔ)文下冊(cè)-【《孔乙己》課后習(xí)題參考答案】
- 人教版高中英語(yǔ)必修二詞匯表(默寫版)
- 2024年浙江省寧波市外事服務(wù)中心招聘2人歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- 【基于上市公司數(shù)據(jù)的康芝藥業(yè)盈利能力探析(定量論文)11000字】
評(píng)論
0/150
提交評(píng)論