版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、JAVA項(xiàng)目實(shí)訓(xùn)文檔 項(xiàng)目名稱:在Netbeans下實(shí)現(xiàn)記事本程序 設(shè)計(jì)內(nèi)容:仿照windows提供的記事本設(shè)計(jì)一個(gè)功能類似的程序 具體設(shè)計(jì):一、建立項(xiàng)目1、開始之前 使用NetBeans IDE開發(fā)JAVA程序,需要安裝如下軟件:l J2SE(TM) Development Kit (JDK),版本最好是1.5以上l NetBeans IDE5.5.1這兩個(gè)軟件都是免費(fèi)的, 可以到網(wǎng)上下載。 下載完畢后需要先安裝好JDK,然 后再安裝NetBeans IDE5.5,安裝完畢后,就可以打開NetBeans IDE5.5.1,開 始我們的學(xué)習(xí)歷程了。2、建立記事本項(xiàng)目NetBeans是以項(xiàng)目的方
2、式來管理程序的,通常一個(gè)程序就是一個(gè)項(xiàng)目。所以我 們創(chuàng)建JAVA程序的第一步就是建立項(xiàng)目。(1)選擇NetBeans的文件菜單 新建項(xiàng)目,根據(jù)向?qū)Вㄈ鐖D1所示)選擇 “常 規(guī)” “jaw應(yīng)用程序”然后轉(zhuǎn)入下一步。(2)向?qū)У牡诙饺鐖D2所示,需要設(shè)置項(xiàng)目的一些信息。我們把項(xiàng)目名稱定 為NoteSys,設(shè)置好項(xiàng)目保存位置, 此時(shí)先不創(chuàng)建主類, 所以去掉創(chuàng)建主類復(fù)選 框的對號,單擊完成即創(chuàng)建好一個(gè)項(xiàng)目3)項(xiàng)目建立之后NetBeans界面如圖3:知識點(diǎn)整理:l從圖1可以看到, 使用NetBeans還可以創(chuàng)建web程序和企業(yè)程序, 我們這里 創(chuàng)建的是桌面應(yīng)用程序。l可以在建立項(xiàng)目時(shí)創(chuàng)建主類,也可以不創(chuàng)
3、建,留到項(xiàng)目建立好后再創(chuàng)建l項(xiàng)目建立好之后就可以在NetBeans IDE環(huán)境中看到剛才創(chuàng)建的項(xiàng)目(圖3)。NetBeans的文件組織分為兩種方式:項(xiàng)目組織方式和文件組織方式。 項(xiàng)目組織方式中整個(gè)項(xiàng)目(NoteSys)包括:源包、測試包、庫和測試庫,源包 再由若干java文件構(gòu)成。文件組織方式按照實(shí)際的物理存放目錄組織,即項(xiàng)目在硬盤上的存放路徑。整個(gè) 項(xiàng)目 (NoteSys)包括src、build等幾個(gè)文件夾。l項(xiàng)目建立好后, 在源包上單擊右鍵可以創(chuàng)建包和其他的java文件,在創(chuàng)建的包 上單擊右鍵也可以創(chuàng)建各種java文件,見圖4經(jīng)過這樣幾個(gè)步驟,我們就建立了一個(gè)桌面程序項(xiàng)目NoteSys,接
4、下來就是在IDE中對項(xiàng)目進(jìn)行開發(fā),首先我們先看如何建立程序的界面。二、構(gòu)建記事本GUI界面NetBeans IDE的GUI生成器經(jīng)過了不斷的改進(jìn),截至NetBeans 5.0版本 時(shí),它已變得更為強(qiáng)大、更具直觀性了。用戶無需深入了解布局管理器,就可以 生成具有專業(yè)外觀的GUI。在NetBeans中以可視化的方式來生成界面,我們 只需將組件放置在所需的位置, 就可以完成窗體布局的設(shè)置。 下面的步驟將帶領(lǐng) 大家制作記事本的界面,也會(huì)讓大家領(lǐng)略到NetBeans中構(gòu)建GUI界面的方便 和高效。1、 建立窗體 在項(xiàng)目視圖的源代碼包上單擊右鍵創(chuàng)建一個(gè)包(包名為qiu.notesys),然后在qiu.no
5、tesys包上單擊右鍵創(chuàng)建一個(gè)jFrame類(類名為WinNote.java),此即 為記事本的窗體,我們將在該窗體上添加其他組件構(gòu)建記事本的界面。如圖5根據(jù)圖5,NetBeans的GUI生成器的各種窗口包括:l項(xiàng)目和文件區(qū)域: 顯示整個(gè)項(xiàng)目的文件, 采用項(xiàng)目和文件兩中方式組織。 可以 通過該窗口管理java文件,包括對java文件的新建,刪除,編譯,運(yùn)行等操作l檢查器:提供所有組件的表示,包括在應(yīng)用程序中表示為樹狀分層結(jié)構(gòu)的可視 和非可視組件。并允許您在可用面板中組織這些組件, 而且添加組件, 設(shè)置組件 的屬性和事件也可以在檢查器內(nèi)完成。l設(shè)計(jì)區(qū)域:GUI生成器用于創(chuàng)建和編輯Java GUI
6、窗體的主窗口。通過使用 工具欄的 “源”和“設(shè)計(jì) ”切換按鈕,可以查看類的源代碼或其GUI組件的圖形視 圖。l組件面板: 可用組件的可定制列表, 包含JFC/Swing、AWT和JavaBean組 件的標(biāo)簽以及布局管理器。 此外, 還可以使用定制器來創(chuàng)建、 刪除和重新排列組 件面板中顯示的類別。l屬“性”窗口。顯示GUI生成器、 “檢查器”窗口、 “項(xiàng)目”窗口或“文件”窗口中當(dāng)前 選定組件的屬性。l調(diào)試和輸出窗口:位于窗口的最下方,顯示調(diào)試程序的信息和輸出信息。注意:如果單擊 “源”按鈕,IDE將在編輯器中顯示應(yīng)用程序的Java源代碼,其 中包含GUI生成器自動(dòng)生成的代碼部分,這部分以藍(lán)色區(qū)域
7、表示,稱為 “被保 護(hù)的塊 ”。被保護(hù)的塊是 “源”視圖中無法編輯的受保護(hù)區(qū)域。處于 “源”視圖中時(shí), 只能編輯出現(xiàn)在編輯器白色區(qū)域中的代碼。 如果需要對被保護(hù)的塊中的代碼進(jìn)行 更改,請單擊 “設(shè)計(jì) ”按鈕以便從IDE的編輯器切換到GUI生成器,然后在生 成器中對窗體進(jìn)行必要的調(diào)整。保存更改時(shí),IDE將更新文件的源代碼 窗體建立好了,整個(gè)界面的基礎(chǔ)也就有了。 下面我們就可以在該窗體上添加其他 組件,來完成整個(gè)界面工作了。2、 添加菜單(1)加入菜單l在組件面板中選擇JMenuBar,將其拖拽入我們的JFrame主窗體。l在設(shè)計(jì)視圖時(shí),屏幕右側(cè)的檢查器會(huì)檢查出所有的可視組件,我們在檢查器中 找到
8、剛才推拽的JMenuBar,點(diǎn)擊右鍵,在右鍵彈出菜單中選擇【更改變量名 稱】,此時(shí)彈出重命名窗體,我們在新建名稱中填寫jmb,然后點(diǎn)擊完成”按 鈕,此時(shí)我們的JMenuBar就成功創(chuàng)建了。l對于每個(gè)菜單來說,還需要?jiǎng)?chuàng)建一個(gè)菜單對象,然后把此頂層菜單添加到菜單 欄中,接著在菜單對象中添加菜單項(xiàng)、分隔符以及子菜單。對于【文件】e【新 建】而言,我們應(yīng)首先將【文件】這個(gè)菜單對象創(chuàng)建,然后將【新建】菜單項(xiàng)添 加到【文件】菜單選項(xiàng)中。參考圖6,具體步驟如下:i.在檢查器中,右鍵點(diǎn)擊jmb,在彈出菜單中,選擇【添加JMenu】,此時(shí)檢 查器中在jmb下面添加了一個(gè)新的JMenu菜單對象。ii.右鍵點(diǎn)擊JM
9、enu菜單對象,在彈出的右鍵菜單中選擇【更改變量名稱】,將其新建名稱更改為 “fileMenu?!眎ii.右鍵點(diǎn)擊“fileMenu菜單對象,在彈出菜單中選擇【添加】e【JMenultem】(可在此菜單中添加菜單項(xiàng),分隔符,子菜單等),此時(shí)在 “fileMe nu菜單對象 中添加了一個(gè)菜單項(xiàng),我們將此菜單項(xiàng)更名為“newMenS這樣文件菜單和新建 菜單項(xiàng)就建立好了。知識點(diǎn)整理:l添加組件的方法(1)到組件面板單擊需要的組件(2)移動(dòng)鼠標(biāo)到窗體,此時(shí)剛單擊過的組件會(huì)跟隨鼠標(biāo)移動(dòng),并且靠近窗體邊 緣或其他組件附近時(shí),會(huì)出現(xiàn)虛線來指示放置組件的位置。(3)確定好放置位置后,再次單擊鼠標(biāo)即可把組件添加
10、好l修改組件大小 添加組件之后,單擊組件,組件周圍會(huì)出現(xiàn)一些白色方塊,把鼠標(biāo)移動(dòng)到其上,拖動(dòng)鼠標(biāo)則可改變組件大小右擊組件,在菜單中選中 “自動(dòng)調(diào)整大小 ”的垂直和水平菜單,則運(yùn)行程序時(shí),組 件會(huì)隨著窗口的大小變化而變化。l對齊組件添加組件時(shí),NetBeans提供了虛線指示, 所以很容易對齊組件。 此外,按住shift鍵選擇多個(gè)組件,使用設(shè)計(jì)區(qū)域上方的一組對齊按鈕也可對齊組件l菜單組件NetBeans中通過JMenuBar組件來創(chuàng)建菜單, 添加JMenuBar后,通過右擊檢 查器中的JMenuBar可以添加頂層菜單, 通過右擊頂層菜單可以添加菜單項(xiàng)和分 割線等,而頂層菜單和菜單項(xiàng)的變量名稱和顯示
11、文字等可以通過其右鍵菜單來設(shè) 置。(2)關(guān)于菜單的幾個(gè)操作l給菜單添加圖標(biāo)菜單項(xiàng)顯示圖標(biāo)會(huì)使菜單看上去更加美觀, 而且含義清晰的圖標(biāo)也會(huì)增加程序的 易用性,所以我們有時(shí)需要給菜單添加一些圖標(biāo)。方法如下:右擊源包建立一個(gè)包(名稱為res),通過該包的物理路徑向該包內(nèi)放一些圖標(biāo), 然后打開菜單項(xiàng)的屬性窗口,通過菜單的ico屬性,指定類路徑選項(xiàng),然后選擇 包res中的圖標(biāo)文件就可以把圖標(biāo)加入到菜單中。下面以新建菜單為例: 在檢查器中,右鍵點(diǎn)擊“n ewMe n”在彈出菜單中,選擇【屬性】,此時(shí)彈出一 個(gè)可以修改屬性和事件的對話框, 我們選擇屬性選項(xiàng)卡, 找到ico屬性,點(diǎn)擊ico屬性對應(yīng)的按鈕,如圖
12、7:此時(shí)彈出一個(gè)圖片選擇對話框, 我們選擇類路徑, 并在當(dāng)前類路徑下選擇圖片文 件,點(diǎn)擊 “確定 ”按鈕,這時(shí)我們菜單的圖片就添加上了l給菜單設(shè)置加速鍵加速鍵的作用就是程序運(yùn)行中可以通過使用ALT加字母的方式快速打開菜單。NetBeans中,在菜單的text屬性指定的名字后面加上一個(gè)括號和一個(gè)大寫字母, 例如新建的text為“新建(N)”然后把屬性mnemonic設(shè)置成剛才指定的大寫字母 即可,此時(shí)通過ALT加該字母就可以訪問該菜單了l給菜單設(shè)置快捷鍵 菜單的快捷鍵可以使用戶用快捷鍵來執(zhí)行某個(gè)菜單的操作。 切換到代碼編輯器窗 口,在代碼編輯器中創(chuàng)建一個(gè)方法setMenuAccelerator,
13、在方法中為需要設(shè)置 快捷鍵的菜單加入設(shè)置語句即可,新建菜單的快捷鍵設(shè)置如下 這樣,當(dāng)我們按下Ctrl+N時(shí),就可執(zhí)行新建命令了。 最后在主類(WinNote.java) 的構(gòu)造方法中調(diào)用該方法即可。知識點(diǎn)整理:l NetBeans中,在可視化的方式中就可以順利完成菜單的各種復(fù)雜設(shè)置,包括 頂層菜單、菜單項(xiàng)、分割線等的添加以及其他菜單的相關(guān)設(shè)置l菜單使用的圖標(biāo)我們事先放到了一個(gè)包內(nèi),然后以類路徑的方式加入到了菜單 中,這樣類路徑并不依賴某個(gè)具體路徑,所以使程序易于移植。(3)按照剛才的方法給記事本添加表1所示的菜單菜單項(xiàng)菜單變量名快捷鍵 加速器【文件】P【新建】【fileMenu】e【newMe
14、nu】FeN Ctrl+N【文件】e【打開】【fileMenu】e【openMenu】FeO Ctrl+O【文件】e【保存】【fileMenu】e【saveMenu】FeS Ctrl+S【文件】e【退出】【fileMenu】e【exitMenu】Fe X【編輯】e【剪切】【editMenu】e【cutMenu】Ee T Ctrl+X【編輯】e【拷貝】【editMenu】e【copyMenu】Ee C Ctrl+C【編輯】e【粘貼】【editMenu】e【pasterMenu】Ee P Ctrl+V【編輯】e【全選】【editMenu】e【selectAllMenu】Ee A Ctrl+A【格式
15、】e【顏色】【editMenu】e【colorMenu】Ee F Alt+F【幫助】e【關(guān)于】【helpMenu】e【aboutMenu】He A3、添加工具欄NetBeans中,工具欄由JToolBar組件和按鈕(JButton)組件組合起來實(shí)現(xiàn)的。 我們首先在組件面板中找到JToolBar組件,并將其拖入我們的主窗體,然后根 據(jù)需要在jtoolBar中放置一些按鈕,設(shè)置好按鈕的ico(圖標(biāo))和tooltiptext(按 鈕提示)屬性 設(shè)計(jì)表2所示的工具欄放置順序 變量名稱 功能 工具提示1 newButton新建文件 新建2 openButton打開本地文件 打開3 saveButton保
16、存文件到本地 保存4 cutButton剪切 剪切5 copyButton拷貝 復(fù)制6 plasterButton粘貼 粘貼4、加入文本框NetBeans提供幾個(gè)顯示編輯文本的組件,我們使用JTextArea來實(shí)現(xiàn)。從面板 中找到JTextArea,加入到窗體上 這樣,我們的記事本界面就制作完畢了,在項(xiàng)目窗口中,找到WinNote.java, 右擊選擇編譯文件,NetBeans則對該文件進(jìn)行編譯,編譯成功后,在運(yùn)行文件 即可啟動(dòng)程序,運(yùn)行效果如圖8:三、打開與保存 在上一節(jié)中我們已經(jīng)完成了記事本的界面,也從中學(xué)習(xí)了一些構(gòu)建GUI的方法和技巧。 從本節(jié)開始將要討論記事本的功能開發(fā), 先看如何打開
17、和保存文件。 當(dāng) 然在敘述過程中會(huì)講解如何使用NetBeans的代碼編輯器的一些用法。1、打開文件 使用記事本打開一個(gè)已有的文本文件需要涉及到如下問題:l如何控制要打開文件的類型,即只能打開文本文件l打開對話框如何實(shí)現(xiàn)l如何從硬盤上讀入文件內(nèi)容到記事本中 下面依次討論這三個(gè)問題的解決方案(1)控制要打開文件的類型 FileFilter類JAVA中的FileFilter類可以很好的解決這個(gè)問題,F(xiàn)ileFilter是一個(gè)沒有默認(rèn)實(shí) 現(xiàn)的抽象類。一經(jīng)實(shí)現(xiàn)便可以設(shè)置在JFileChoose上,以阻止不需要的文件出 現(xiàn)在目錄清單中。所以我們自己寫一個(gè)類繼承自FileFilter,然后實(shí)現(xiàn)FileFil
18、ter類的方法即可,具體如下:l右擊qiu.notesys包新建一個(gè)類(名稱為TextFilter),此時(shí)該類的內(nèi)容如下l在類名TextFilter后輸入extends FileFilter,即繼承自FileFilter類。此時(shí)NetBeans代碼編輯器會(huì)自動(dòng)掃描代碼,發(fā)現(xiàn)該行代碼的錯(cuò)誤并且用紅線標(biāo)出, 這時(shí)把鼠標(biāo)移動(dòng)到該行,NetBeans會(huì)提示你錯(cuò)誤的原因:由于我們并沒有引入FileFilter類就直接使用了, 所以這里提示 “找不到FileFilter類”, 單擊該行任意位 置會(huì)在行左邊出現(xiàn)一個(gè)燈泡, 單擊燈泡,NetBeans會(huì)給出你修改錯(cuò)誤的方法, 現(xiàn)在從提示里選擇 “添加javax
19、.swing.filechooser.FileFilter的import”,NetBeans就會(huì)自動(dòng)把對FileFilter類的引入加上,而不需要我們?nèi)ナ謩?dòng)添加。此外,因?yàn)镕ileFilter類是一個(gè)抽象類, 所以必須實(shí)現(xiàn)其所有的抽象方法, 因此現(xiàn)在還提示有 錯(cuò)誤,再次單擊該行,從燈泡的提示中選擇 “實(shí)現(xiàn)所有抽象方法 ”,NetBeans就 會(huì)自動(dòng)把FileFilter的所有抽象方法添加上,此時(shí)代碼窗口內(nèi)容如下: 其中標(biāo)紅的都是代碼編輯器自動(dòng)添加的。 從此處也可以看出使用NetBeans寫代 碼會(huì)非常的省時(shí)省力。l最后我們實(shí)現(xiàn)TextFilter類的抽象方法,代碼如下這樣就實(shí)現(xiàn)了一個(gè)只顯示“t
20、x成“doc類型文件的過濾器類TextFilter,用他可是方便的過濾文件。知識點(diǎn)整理:l代碼編輯器可以自動(dòng)查找代碼錯(cuò)誤,并標(biāo)出紅線提示,此時(shí)把鼠標(biāo)放到錯(cuò)誤行 上面會(huì)出現(xiàn)錯(cuò)誤原因的提示l單擊錯(cuò)誤行前的小燈泡,代碼編輯器會(huì)給出修改錯(cuò)誤方案并能自動(dòng)修復(fù)錯(cuò)誤l書寫代碼時(shí)可以不用過分考慮代碼的縮進(jìn)格式,代碼寫完后使用“Ctrl+Shift+F組合鍵,代碼編輯器會(huì)自動(dòng)調(diào)整代碼格式(2)打開已有文件 jFileChooser組件NetBeans提供了一個(gè)文件選擇組件 jFileChooser,為用戶選擇文件提供了 一種簡單的機(jī)制, 使用他可以方便調(diào)用打開對話框和保存對話框。 我們首先添加 一個(gè)jFileC
21、hooser,其用法在下一步中介紹。添加該組件的具體操作是: 在項(xiàng)目中選擇WinNote,切換到設(shè)計(jì)視圖,此時(shí)檢查器中會(huì)顯示W(wǎng)inNote的所 有組件以及組件之間的組織層次,由于打開對話框是獨(dú)立的,并不依附主窗口, 所以我們把該組件添加到 “其他組件”內(nèi),在“其他組件 ”上右擊,從組件面板上添 加SWING jFileChooser,即可把jFileChooser添加到項(xiàng)目中,此后我 們就可以使用它了。(3)讀入文件 java中的I/O操作JAVA中為實(shí)現(xiàn)文本輸入輸出提供一些專門的類,常用的有FileReader、FileWriter和BufferedReader、BufferdWriter幾
22、個(gè)類。這里我們綜合利用BufferedReader、FileReader以及剛才的jFileChooser組件來完成對文件的打 開操作,此外, 打開操作是通過打開菜單來激發(fā)的, 所以我們首先實(shí)現(xiàn)打開菜單 的事件,參見圖9l切換到WinNote的設(shè)計(jì)視圖l到檢查器窗口找到 “打開”菜單并選中(此時(shí)右擊也可添加一個(gè)事件)l右側(cè)的屬性窗口會(huì)顯示該菜單的相關(guān)信息,選擇事件,該窗口就列出了該菜單 支持的所有的事件l找到actionPerformed事件,單擊后面的按鈕, 就可以打開添加事件的對話框, 添加一個(gè)事件即可 添加好事件后,給事件添加如下代碼: 知識點(diǎn)整理:l NetBeans中通過屬性窗口可以
23、方便的給組件和菜單添加事件和管理事件,而 不用考慮過多的事件內(nèi)部細(xì)節(jié)l JAVA中的輸入輸出(1)FileReader類是用來讀取字符文件的便捷類,在給定了需要讀取數(shù)據(jù)的 文件名的情況下創(chuàng)建一個(gè)新FileReader,然后使用其read方法可以讀取字符 流,但其所作的每個(gè)讀取請求都會(huì)導(dǎo)致對基礎(chǔ)字符或字節(jié)流進(jìn)行相應(yīng)的讀取請 求,效率很低。(2)BufferedReader從字符輸入流中讀取文本,緩沖各個(gè)字符(3)根據(jù)(1)(2),我們可以用BufferedReader包裝read()操作效率很低的FileReader,采用如下方式:BufferedReader in = new Buffered
24、Reader(new FileReader(filename);這樣,用FileReader讀取指定的文件,然后用BufferedReader來緩沖,最后在 用read或readline方法讀取文件。 避免了每次調(diào)用read()或readLine()都會(huì) 從文件中讀取字節(jié),并將其轉(zhuǎn)換為字符后返回的低效做法此外,F(xiàn)ileWriter是寫入字符文件的便捷類,用于寫入字符流。BufferdWriter類 提供緩沖,因此也可以綜合使用這兩個(gè)類完成寫入文件的操作。2、 保存文件保存文件的實(shí)現(xiàn)和打開非常類似,也是通過TextFilter類控制保存的文件類型, 通過jFileChooser來調(diào)用保存對話框,
25、通過文件輸入輸出操作來寫文件。具體 做法請讀者自己研究。四、其他功能的實(shí)現(xiàn) 有了打開與保存, 我們的記事本已經(jīng)可以操作文件, 本節(jié)將帶領(lǐng)大家完成記事本 剩余的幾個(gè)重要功能。1、剪切操作 添加好剪切菜單的actionPerformed事件,在事件內(nèi)寫如下代碼editor.cut();其中editor是文本框jTextArea。這樣就實(shí)現(xiàn)了剪切操作,其余的全選、復(fù)制、 粘貼與此類似,不再細(xì)說2、文本顏色NetBeans提供了一個(gè)jColorChooser組件,使用它可以方便的實(shí)現(xiàn)顏色設(shè)置。 該組件顯示有模式的顏色選取器,在隱藏對話框之前一直阻塞。如果用戶按下“OK按鈕,貝吐匕方法隱藏/釋放對話框并
26、返回所選顏色。如果用戶按下“Cancel按鈕或者在沒有按“OK勺情況下關(guān)閉對話框,則此方法隱藏/釋放對話框并返回null。因此,我們添加一個(gè)jColorChooser,利用它選取顏色即可。參見圖10在檢查器窗口內(nèi)右擊 “其它組件 ”,添加一個(gè)jColorChooser,修改變量名為ColorChooser,然后添加顏色菜單勺事件,在事件內(nèi)加入如下代碼: 第一句代碼創(chuàng)建了一個(gè)Color對象,該對象返回了jColorChooser組件中被選擇 勺顏色(jColorChooser勺構(gòu)造方法中勺三個(gè)參數(shù)分別是:對話框勺父Component,對話框標(biāo)題和顯示顏色選取器時(shí)勺初始Color設(shè)置),第二句代
27、碼貝是設(shè)置文本顏色。3、撤銷操作JAVA中提供了撤銷管理器類 UndoManager,通過該類提供勺方法, 我們可 以方便實(shí)現(xiàn)撤銷與恢復(fù)操作,具體操作如下:l首先聲明一個(gè)UndoManager勺對象,代碼如下:UndoManager undoManager = new UndoManager();l因?yàn)槌蜂N和恢復(fù)都是針對文本框進(jìn)行勺,所以需要對文本框jTextArea進(jìn)行監(jiān) 視,打開文本框勺AncestorAdded事件,填入如下代碼這樣撤銷管理器就有效勺對文本進(jìn)行監(jiān)視, 一旦需要撤銷或恢復(fù)操作, 直接調(diào)用 撤銷管理器勺方法即可l最后在撤銷菜單勺actionPerformed事件中寫一句 “u
28、ndoManager.undo();,”在 恢復(fù)菜單勺actionPerformed事件寫一句 “undoManager.redo();就”可以了。4、新建與退出新建與退出都會(huì)涉及到如下兩個(gè)問題:l如何判斷文檔是否發(fā)生變化l若文檔已改變,如何調(diào)用對話框詢問用戶是否保存當(dāng)前文檔 對于第一個(gè)問題,文本組件jTextArea沒有提供相關(guān)方法,但是我們可以定義一 個(gè)全局變量, 讓他存儲(chǔ)初始的文檔內(nèi)容, 然后新建或退出時(shí)在比較該變量和當(dāng)前 文檔內(nèi)容,相同則不必詢問是否保存,否則調(diào)用對話框詢問是否保存。 對于第二個(gè)問題,使用jOptionPane組件即可實(shí)現(xiàn),JOptionPane有助于方便 地彈出要求用
29、戶提供值或向其發(fā)出通知的標(biāo)準(zhǔn)對話框,對JOptionPane組件的 方法調(diào)用通常有如下幾個(gè):方法名 描述showConfirmDialog詢問一個(gè)確認(rèn)問題,如yes/no/cancel。showInputDialog提示要求某些輸入。showMessageDialog告知用戶某事已發(fā)生。showOptionDialog上述三項(xiàng)的大統(tǒng)一(Grand Unification)。 每個(gè)調(diào)用方法的參數(shù)很多,這里不再細(xì)說,請查看API手冊,我們使用JOptionPane組件的第一個(gè)方法showConfirmDialog來實(shí)現(xiàn)新建和退出需要的 對話框。(1)新建代碼 (2)退出 退出代碼與新建類似, 也是
30、判斷文檔是否改變, 然后通過對話框提示用戶是否保 存,然后在退出。5、幫助與關(guān)于窗口的制作 關(guān)于的主要目的是通過一個(gè)窗口展示有關(guān)于程序的一些信息和作者的相關(guān)信息,這里我們建立一個(gè)jPanel窗口類, 然后在窗口上添加JTabbedPane、jPanel、jLabel等幾個(gè)組件就可以實(shí)現(xiàn)了。具體操作如下:l右擊qiu.notesys包,添加一個(gè)jPanel窗口類l找到檢查器中的jPanel,右擊,添加JTabbedPane組件,再右擊JTabbedPane, 添加兩個(gè)jPanel組件,這時(shí)JTabbedPane就有了兩個(gè)選項(xiàng)卡:tab1和tab2, 這兩個(gè)選項(xiàng)卡是由jPanel組件構(gòu)成的。最后在
31、分別給兩個(gè)選項(xiàng)卡添加幾個(gè)jLabel。l jLabel組件可以顯示文字和圖片, 所以根據(jù)情況添加相關(guān)信息就可以了, 最后 通過主類WinNote的關(guān)于菜單調(diào)用該窗口即可。效果如圖11:知識點(diǎn)整理l全選、復(fù)制、粘貼和剪切等操作使用jTextArea組件自身的方法就可以實(shí)現(xiàn)l文本顏色使用jColorChooser組件實(shí)現(xiàn)。我們并沒有講解如何實(shí)現(xiàn)字體設(shè)置功 能,因?yàn)镹etBeans沒有提供字體對話框組件, 需要我們自己設(shè)計(jì)實(shí)現(xiàn)字體對話 框的功能,因?yàn)橛行?fù)雜,所以沒有講,請參看我的源代碼l撤銷操作有撤銷管理器類UndoManager實(shí)現(xiàn),可以連續(xù)多次撤銷或恢復(fù)l新建與退出用到了JOptionPane組件,它
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新《行政處罰法》知識學(xué)習(xí)考試題庫500題(含答案)
- 2025年福建省職教高考《語文》考前沖刺模擬試題庫(附答案)
- 2025年桂林生命與健康職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 10kV配電站房工程的成本控制與優(yōu)化策略
- 國標(biāo)柴油購銷合同
- 居間合同委托書范文年
- 煙草產(chǎn)品購銷合同
- 注冊規(guī)劃師聘用合同
- 土地平整工程承包合同
- 正規(guī)設(shè)備買賣交易合同
- 2024年北京東城社區(qū)工作者招聘筆試真題
- 無子女離婚協(xié)議書范文百度網(wǎng)盤
- 一年級數(shù)學(xué)個(gè)位數(shù)加減法口算練習(xí)題大全(連加法-連減法-連加減法直接打印版)
- 五年級上冊數(shù)學(xué)試題試卷(8篇)
- 五年級上冊小數(shù)遞等式計(jì)算200道及答案
- 冀教版五年級下冊數(shù)學(xué)全冊教學(xué)課件
- T-SDASTC 006-2023 眩暈病中西醫(yī)結(jié)合基層診療指南
- 安全個(gè)人承諾書范文個(gè)人承諾書范文
- 遠(yuǎn)視儲(chǔ)備培訓(xùn)課件
- 嶺南膏方規(guī)范
- 【可行性報(bào)告】2023年虛擬演播室制作設(shè)備相關(guān)行業(yè)可行性分析報(bào)告
評論
0/150
提交評論