![Java程序設(shè)計實(shí)驗(yàn)報告-JAVA記事本_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/29/76055e77-6525-4e14-8e99-5dbbce215f87/76055e77-6525-4e14-8e99-5dbbce215f871.gif)
![Java程序設(shè)計實(shí)驗(yàn)報告-JAVA記事本_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/29/76055e77-6525-4e14-8e99-5dbbce215f87/76055e77-6525-4e14-8e99-5dbbce215f872.gif)
![Java程序設(shè)計實(shí)驗(yàn)報告-JAVA記事本_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/29/76055e77-6525-4e14-8e99-5dbbce215f87/76055e77-6525-4e14-8e99-5dbbce215f873.gif)
![Java程序設(shè)計實(shí)驗(yàn)報告-JAVA記事本_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/29/76055e77-6525-4e14-8e99-5dbbce215f87/76055e77-6525-4e14-8e99-5dbbce215f874.gif)
![Java程序設(shè)計實(shí)驗(yàn)報告-JAVA記事本_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/29/76055e77-6525-4e14-8e99-5dbbce215f87/76055e77-6525-4e14-8e99-5dbbce215f875.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、華北科技學(xué)院計算機(jī)系綜合性實(shí)驗(yàn)實(shí) 驗(yàn) 報 告 課程名稱 Java程序設(shè)計B 實(shí)驗(yàn)學(xué)期 2011 至 2012 學(xué)年 第 1 學(xué)期學(xué)生所在系部 計算機(jī)學(xué)院 年級 2009 專業(yè)班級 網(wǎng)絡(luò)B093 學(xué)生姓名 學(xué)號 任課教師 實(shí)驗(yàn)成績 計算機(jī)系制Java程序設(shè)計B課程綜合性實(shí)驗(yàn)報告開課實(shí)驗(yàn)室: 基礎(chǔ)實(shí)驗(yàn)室 2011 年 11 月 16 日實(shí)驗(yàn)題目簡易寫字板軟件設(shè)計一、實(shí)驗(yàn)?zāi)康耐ㄟ^編寫Java的應(yīng)用系統(tǒng)綜合實(shí)例簡易寫字板軟件,總結(jié)、回顧和實(shí)踐面向?qū)ο蟮木幊趟枷胍约熬幊谭椒?,并通過編寫程序來掌握J(rèn)ava語言編程技巧,將學(xué)習(xí)到的知識融會貫通,同時提高調(diào)試程序的能力,養(yǎng)成良好的編程習(xí)慣,并增強(qiáng)對程序設(shè)計整體
2、思路的把握。熟悉在集成開發(fā)環(huán)境下編寫Java程序。二、設(shè)備與環(huán)境 硬件:多媒體計算機(jī)軟件:Windows 2000以上的操作系統(tǒng)、JDK開發(fā)包、集成開發(fā)環(huán)境三、實(shí)驗(yàn)內(nèi)容總體要求:程序功能基本完成,用戶界面友好,代碼的可維護(hù)性和可擴(kuò)展性較好,最好包括必要的注釋和相應(yīng)的文檔。具體要求:基本的文本錄入,字符修改,刪除,換行,粘貼,復(fù)制,剪切等功能,主要包括:1 菜單欄設(shè)計及功能實(shí)現(xiàn):菜單欄主要包括文件、編輯、格式、幫助等常見菜單。其中文件菜單有新建、打開、保存、另存為、退出等功能;編輯菜單有剪切、復(fù)制、粘貼、等功能;格式菜單含有對文字字體、字型、字號及顏色等的設(shè)置功能,根據(jù)情況可在編輯菜單添加查找和
3、查找替換功能。2 編輯區(qū)設(shè)計:對文本的編輯處理區(qū)。3 工具欄設(shè)計:可根據(jù)需要增加該項(xiàng)功能。4 其他功能設(shè)計。四、實(shí)驗(yàn)結(jié)果及分析1主界面的設(shè)計與實(shí)現(xiàn) 我的記事本主界面由三個部分組成:菜單欄、工具欄、文本編輯區(qū)。布局方式:主界面采用的是默認(rèn)的邊界布局,工具欄置于邊界布局的“北”部,文本編輯區(qū)置于邊界布局的“中心”,菜單欄置于菜單條位置。工具欄內(nèi)部采用的是盒式布局,將各個組件放在一個盒子容器里面,再將這個盒子容器嵌入到主界面的“北”部。文本編輯區(qū)是嵌入在一個滾動窗格的中間容器中,再將滾動窗格置于主界面“中心”。主界面截圖如下: 菜單的設(shè)計菜單欄中共有四個菜單,分別是“文件”“編輯”“格式”“幫助”。
4、 另外,為了使用方便,還設(shè)計了彈出菜單,實(shí)現(xiàn)了部分功能,截圖如下: 工具欄設(shè)計工具欄的使用也是該記事本特色之一,將常用的功能設(shè)置在工具欄中,以圖片按鈕的形式展現(xiàn)給使用者,更方便、更友好。按從左到右的順序,工具欄中按鈕及圖標(biāo)依次是:新建按鈕、打開按鈕、保存按鈕、字體下拉列表、字體大小下拉列表、加粗按鈕、傾斜按鈕。其中加粗和傾斜按鈕可以疊加使用,當(dāng)選中“加粗”或者“傾斜”時,按鈕會變成黃色,再次單擊,按鈕會恢復(fù)正常,以提示使用者當(dāng)前按鈕是否是選中狀態(tài)。工具欄截圖如下:2程序概述我的記事本程序只有一個源代碼文件,其中共有3個類:一個記事本窗口類,一個查詢類,一個測試用的主類。記事本窗口類:該類包含了
5、整個記事本的圖形設(shè)計過程,包括窗體的設(shè)置,菜單的創(chuàng)建,工具欄的創(chuàng)建,文本區(qū)的創(chuàng)建等等。記事本中的大多數(shù)功能也是在本類中實(shí)現(xiàn)的,通過在各個菜單項(xiàng)、按鈕上添加內(nèi)部類監(jiān)聽器,內(nèi)部類中調(diào)用相應(yīng)功能方法。上述圖形設(shè)計是定義在記事本窗口類的構(gòu)造方法中的,而各種功能方法是記事本窗口類的成員方法。查詢類:查詢類是為“查找”“替換”功能專門創(chuàng)建的類,其中包括了查詢對話框的設(shè)計,查找替換功能的實(shí)現(xiàn)。在記事本窗口類的“查找”菜單項(xiàng)上添加了監(jiān)聽器,當(dāng)事件被觸發(fā)時,會創(chuàng)建一個查詢類的對象,彈出查詢對話框?qū)崿F(xiàn)相應(yīng)功能。主類:包含main方法的測試類,產(chǎn)生記事本窗口類對象,程序的入口。3實(shí)現(xiàn)的功能此記事本是根據(jù)“Windo
6、ws記事本”改變而來,具有基本的編輯功能。已實(shí)現(xiàn)的功能有:新建、打開、保存、另存為、重命名、退出;剪切、復(fù)制、粘貼、全選、刪除、查找、替換;字體格式、大小、顏色的設(shè)置等。撤銷功能尚未實(shí)現(xiàn)。下面列舉部分功能進(jìn)行說明:保存功能設(shè)計記事本窗口類有如下成員變量Boolean isSave=false; 判斷文件是否保存的標(biāo)志變量File file=null; 指向正在編輯的文件的指針,文件未保存時為nullString textString=null; 文件保存后將文本區(qū)內(nèi)容給該變量,用于判斷文件是否被修改以下是保存方法源代碼:/= 保存方法 =/private void savePerformed(
7、) FileWriter output = null;if(file!= null & file.exists() ;如果文件指針不為空且文件已存在tryoutput = new FileWriter(file); ;file是指向正在編輯文件針的指output.write(text.getText(); ;直接寫入文件output.close();catch(IOException e)JOptionPane.showMessageDialog(this, 文件寫入錯誤,沒有保存);isSave=false; ;保存失敗,保存標(biāo)志變量置為falsefinallyoutput = null;i
8、sSave =true; ;保存成功則修改標(biāo)志位truetextString=text.getText(); ;為以后判斷內(nèi)容是否被修改用elsesaveAsPerformed(); ;文件不存在則調(diào)用另存為方法重命名功能設(shè)計重命名方法是Windows記事本沒有的方法,是我自己新增的。此記事本的另一優(yōu)點(diǎn)是,只要文件沒保存或者保存后又被修改,當(dāng)調(diào)用“新建”“打開”“重命名”“退出”等功能時,會彈出確認(rèn)對話框,提醒使用者是否保存文件。以下是重命名方法的源代碼/= 重命名方法 =/private void reNamePerformed()if(file=null) ;如果文件沒保存,彈出確認(rèn)對話框
9、int ret=JOptionPane.showConfirmDialog(this, 文件未保存,是否保存,確認(rèn)對話框,JOptionPane.YES_NO_OPTION);if(ret=JOptionPane.NO_OPTION)return;else if(ret=JOptionPane.YES_OPTION)saveAsPerformed(); ;選擇 “是”則調(diào)用另存為方法boolean flag=true; ;以下是重命名代碼while(flag)String s=JOptionPane.showInputDialog(this,請輸入新的文件名!,重命名對話框,JOptionPa
10、ne.INFORMATION_MESSAGE);if(s!=null)flag=false;setTitle(s); ;當(dāng)輸入不為空時,調(diào)用renameTo()方法重命名file.renameTo(new File(file.getParent()+s);if(s.equals() ;提示文件名不能為空,并跳轉(zhuǎn)重新輸入JOptionPane.showMessageDialog(this, 文件名不能為空!,錯誤,JOptionPane.ERROR_MESSAGE);flag=true; 字體加粗傾斜功能設(shè)計加粗傾斜是定義在工具欄上的兩個按鈕上的。主要思路:加粗和傾斜是字體格式參數(shù)int sty
11、le決定的,其中BOLD=1,ITALIC=2,PLAIN=0記事本窗口類有一個字體成員變量:Font font=new Font(“宋體”,Font.PLAIN,16); 初始字體樣式通過font返回style的值,控制style在0-3之間變化,根據(jù)style的值就可以判斷字體是什么樣式的了。每次單擊一次“加粗”style加1或者減1;每單擊一次“傾斜”,style就加2或者減2.當(dāng)“加粗”或者“傾斜”被選中時,則給按鈕換一張黃色背景的圖片,再次選中則換回以前圖片。boldButton.addActionListener(new ActionListener()public void ac
12、tionPerformed(ActionEvent e)/int style=font.getStyle();System.out.println(style);if(style=0|style=2)style+;boldButton.setIcon(new ImageIcon(Imagebold1.png);else if(style=1|style=3)style-;boldButton.setIcon(new ImageIcon(Imagebold.gif);font=(new Font(font.getName(),style,font.getSize();text.setFont(f
13、ont););xieButton.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)int style=font.getStyle();System.out.println(style);if(style=0|style=1)style=style+2;xieButton.setIcon(new ImageIcon(Imageitalic1.png);else if(style=2|style=3)style=style-2;xieButton.setIcon(new ImageIco
14、n(Imageitalic.gif);font=(new Font(font.getName(),style,font.getSize();text.setFont(font););字體功能展示截圖如下:查找替換功能設(shè)計/替換方法 public void replace() int weight = textRepla.getText().length(); ;獲得替換文本框中字符長度 String store1 = notepad.text.getText(); ;獲得記事本編輯區(qū)文字 String store2 = textFind.getText(); String store3 = t
15、extRepla.getText(); ;獲得替換框字符串 if(weight 0) int index = store1.indexOf(store2, run); ;查找匹配的字符位置 if (index != -1) ;替換匹配的字符串 notepad.text.select(index, index + store2.length(); notepad.text.replaceRange(store3, notepad.text.getSelectionStart(), notepad.text.getSelectionEnd(); run = index + 1; ;光標(biāo)位置 loc
16、aTail = notepad.text.getSelectionEnd(); locaTop = notepad.text.getSelectionStart(); else run = 0; ;如果沒找到,光標(biāo)退回開頭 JOptionPane.showMessageDialog(this,找不到: +store2,替換, JOptionPane.INFORMATION_MESSAGE); else ;如果查找框?yàn)榭?,彈出提?JOptionPane.showMessageDialog(this,請輸入要查找的內(nèi)容,提示, JOptionPane.INFORMATION_MESSAGE);
17、替換功能展示截圖如下: 上圖為: 查找文本區(qū)中“B”字母 上圖為:將文本區(qū)所有的“B”換成“V”4遇到的問題在編寫記事本程序時,遇到過很多問題。比如說在圖形界面設(shè)計時,就遇到過關(guān)于布局的問題,當(dāng)我向窗口中加入工具欄時,文本區(qū)就“不見了”,剛開始還以為是沒validate(),可是刷新后還是沒有,把setVisible()放到最后執(zhí)行還是不行,最后才發(fā)現(xiàn)是布局的問題。JFrame默認(rèn)是的邊界布局,一個區(qū)域只能放一個組件,如果再放入一個組件就會覆蓋前一個組件,所以我的文本區(qū)就看不到了。于是,我把工具欄添加到“北區(qū)”就不會遮蓋“中區(qū)”的文本區(qū)了。在創(chuàng)建“查找”對話框時,總是布局不好,要么就是這個組件
18、對不齊,要么那個組件太大了,總是達(dá)不到我預(yù)期的效果,用了很多方法都不行。最后我只好去網(wǎng)上看了看別人的代碼,發(fā)現(xiàn)別人用的竟是“空布局”,每一個組件都用setBounds()去控制大小和位置,于是我也照著試了試,效果不錯。在實(shí)現(xiàn)一些功能時,不知道如何下手,于是我上網(wǎng)查資料,看看別人是如何實(shí)現(xiàn)的。比如,如何將系統(tǒng)自帶的字體添加到下拉列表中,為此我還在百度知道中提問了,得到了好心人的幫助,最終得到了解決。后來我發(fā)現(xiàn),課本上有一道例題居然可以解決我的問題,看來是我看書看得不夠啊,心中慚愧啊。在這次實(shí)驗(yàn)中我遇到了好多我不認(rèn)識的類,不認(rèn)識的方法,于是我一個個對著API找,仔細(xì)地看各個方法的用法,各個參數(shù)代表什么意思,然后自己理解好加上注釋。5收獲和體會這次綜合實(shí)驗(yàn)我很早就開始準(zhǔn)備了,在代碼上花費(fèi)的時間也很多。我深深地體會到編出一個程序是不容易的,編好一個程序更是不容易的。在很多功能上,比如說在“
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個人股權(quán)投資協(xié)議常用版(三篇)
- 2025年五年級老師個人的年度工作總結(jié)(五篇)
- 2025年個人攝影服務(wù)合同模板(2篇)
- 2025年中學(xué)春季學(xué)期六年級組工作總結(jié)(四篇)
- 專題01 三角函數(shù)的圖像與性質(zhì)(解析版)
- 2025年個人飯店承包經(jīng)營合同經(jīng)典版(三篇)
- 木材檢驗(yàn)與運(yùn)輸合同
- 汽車輪胎運(yùn)輸協(xié)議范本
- 天主教堂裝修意向協(xié)議
- 學(xué)校裝修施工合同模板
- GH/T 1030-2004松花粉
- 部編版六年級下冊語文第3單元習(xí)作例文+習(xí)作PPT
- 四年級上冊英語試題-Module 9 Unit 1 What happened to your head--外研社(一起)(含答案)
- 辦理工傷案件綜合應(yīng)用實(shí)務(wù)手冊
- 子宮內(nèi)膜異位癥診療指南
- 《高級計量經(jīng)濟(jì)學(xué)》-上課講義課件
- 《現(xiàn)代氣候?qū)W》研究生全套教學(xué)課件
- 護(hù)理診斷及護(hù)理措施128條護(hù)理診斷護(hù)理措施
- 情商知識概述課件
- 九年級物理總復(fù)習(xí)教案
- 天然飲用山泉水項(xiàng)目投資規(guī)劃建設(shè)方案
評論
0/150
提交評論