版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 軟件工程課程設(shè)計(jì)報(bào)告</p><p> ( 2012 -- 2013 年度第 2 學(xué)期)</p><p> 課程名稱: 軟件工程課程設(shè)計(jì) </p><p> 題 目: Windows繪圖板的設(shè)計(jì)與實(shí)現(xiàn) </p><p> 院 系: 計(jì)算機(jī)系
2、 </p><p> 班 級: 10軟工3班 </p><p> 日期:2013 年 6 月 4 日</p><p><b> 摘要:</b></p><p> Windows畫圖板系統(tǒng)的開發(fā)最主要包括前端應(yīng)用程序的開發(fā)。對前端應(yīng)用程序的開發(fā)要求應(yīng)用程序功能完備,易使
3、用,界面美觀等特點(diǎn)。</p><p> 本次課程設(shè)計(jì)主要是用JAVA實(shí)現(xiàn)畫筆系統(tǒng),其系統(tǒng)主要完成以下功能:Windows畫圖板系統(tǒng)主要實(shí)現(xiàn)文件的新建,保存,顏色的編輯,設(shè)計(jì)一個(gè)畫圖程序,能夠?qū)崿F(xiàn)畫筆、畫箭頭、畫直線、畫圓形、畫橢圓、畫矩形、畫多邊形、書寫文字修改該畫筆的大小以及顏色。該畫圖程序還需具有橡皮擦功能以及清空整個(gè)畫面的功能。</p><p> 關(guān)鍵詞:Windows繪圖板
4、 Java</p><p> 課程設(shè)計(jì)的目的與要求</p><p> 目的:采用面向?qū)ο缶幊碳夹g(shù),設(shè)計(jì)并實(shí)現(xiàn)一個(gè)功能完善的Windows繪圖板程序。通過實(shí)際程序的開發(fā),熟練面向?qū)ο蟪绦蛟O(shè)計(jì)方法,掌握桌面程序設(shè)計(jì)技巧,熟悉.NET或Java開發(fā)環(huán)境。</p><p><b> 任務(wù):</b></p><p> 開發(fā)
5、一個(gè)功能完善的Windows繪圖板程序,功能包括:新建空白文檔、文件保存、繪制一些基本的圖形組件(直線、矩形、實(shí)心矩形、橢圓、實(shí)心橢圓、圓、實(shí)心圓、圓角矩形、實(shí)心圓角矩形等)、橡皮擦、添加文字等;</p><p> 完成軟件開發(fā)文檔編寫;</p><p> 給出程序運(yùn)行、測試的詳細(xì)結(jié)果。</p><p> 進(jìn)一步加強(qiáng)和提高軟件工程文檔的編寫能力;</p&
6、gt;<p> 培養(yǎng)協(xié)作能力和團(tuán)隊(duì)精神。</p><p><b> 二、設(shè)計(jì)正文</b></p><p><b> 概述</b></p><p> 1.1課題題目:Windows繪圖板的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 1.2系統(tǒng)的主要目標(biāo):</p><p&g
7、t; 本系統(tǒng)目標(biāo)是實(shí)現(xiàn)Windows繪圖板軟件功能概述</p><p> ?。?)新建空白文檔;</p><p><b> ?。?)文件保存;</b></p><p> ?。?)繪制一些基本的圖形組件(直線、矩形、實(shí)心矩形、橢圓、實(shí)心橢圓、圓、實(shí)心圓、圓角矩形、實(shí)心圓角矩形等)、橡皮擦、添加文字等;</p><p>
8、 1.3 系統(tǒng)的開發(fā)環(huán)境及運(yùn)行環(huán)境:</p><p> 操作系統(tǒng): Windows XP Pro SP2</p><p> 建模工具: Rational Rose 2003</p><p> 開發(fā)工具: eclipse</p><p> Web服務(wù)器:IIS+ASP.NET 2.0平臺(tái)</p><p>&
9、lt;b> 系統(tǒng)需求分析</b></p><p> 2.1繪圖板的功能分析:</p><p> 該系統(tǒng)所要實(shí)現(xiàn)的功能如下:</p><p> (1)“橡皮”的功能:用來畫出的圖形。</p><p> (2)“鉛筆”的功能:用來畫出的任意直線。</p><p> (3)“直線”的功能:用來讓
10、用戶更好的畫出的直線。</p><p> ?。?)“刷子”的功能:用來讓用戶更好的畫出的圖形。</p><p> ?。?)“吸管”的功能:用來讓用戶得到圖片的顏色。</p><p> ?。?)“字體”的功能:用來讓用戶寫出自己的字體。</p><p> (7)“多邊形”的功能:用來讓用戶更好的畫出的多邊形。</p><p
11、> ?。?)“橢圓”的功能:用來讓用戶更好的畫出的橢圓。</p><p> ?。?)“畫函數(shù)”的功能:根據(jù)用戶的輸入畫出函數(shù)圖形。</p><p> ?。?0)“圓角矩形”、“矩形”、“填充”、“選擇顏色”等功能:用來讓用戶更好的實(shí)用該繪圖板功能。</p><p> 2.2用戶界面需求和性能分析:</p><p> Windows繪
12、圖板主要是為用戶提供基本畫圖工具。所以以提供用戶最需要的功能為目的。</p><p><b> 設(shè)計(jì)性能如下:</b></p><p> 讓用戶不管怎樣操作都能得到用戶的目的,爭取做到傻瓜都能使用該軟件。</p><p> 較windows繪圖板增加了生成函數(shù)圖象的功能,能實(shí)現(xiàn)繪制一些基本的圖形組件(直線、矩形、實(shí)心矩形、橢圓、實(shí)心橢圓、
13、圓、實(shí)心圓、圓角矩形、實(shí)心圓角矩形等)、橡皮擦、添加文字等。</p><p> 其他的實(shí)現(xiàn)了windows繪圖板的大部分功能:鉛筆、橡皮、刷子、直線、選擇顏色等等功能。</p><p><b> 2.3 用例圖</b></p><p><b> 圖2 繪圖板用例圖</b></p><p>&l
14、t;b> 用例圖說明:</b></p><p> ?。?)系統(tǒng)的外部角色有:學(xué)生用戶、教師用戶和管理員。</p><p> (2)系統(tǒng)主要用例的文檔描述:</p><p> ?、賹W(xué)生管理用例:學(xué)生用戶可見的功能,包含了選課、退課和查看選課三個(gè)用例功能。</p><p> ?、诮處煿芾碛美航處熡脩艨梢姷墓δ埽瞬榭磳W(xué)
15、生選課和提交成績兩個(gè)用例功能。</p><p> ?、坌畔⒐芾碛美汗芾韱T可見的功能,這個(gè)用例進(jìn)一步分為三個(gè)用例:學(xué)生信息管理用例、教師信息管理用例和課程信息管理用例。</p><p> ?、軐W(xué)生信息管理用例:信息管理用例可見的功能,實(shí)現(xiàn)學(xué)生信息的管理功能,包含了添加學(xué)生、修改學(xué)生信息和刪除學(xué)生三個(gè)用例。</p><p> ?、萁處熜畔⒐芾碛美盒畔⒐芾碛美梢姷墓?/p>
16、能,實(shí)現(xiàn)教師信息的管理功能,包含了添加教師、修改教師信息和刪除教師三個(gè)用例。</p><p> ?、拚n程信息管理用例:信息管理用例可見的功能,實(shí)現(xiàn)課程信息的管理功能,包含了添加課程、修改課程信息和刪除課程三個(gè)用例。</p><p> ⑦修改密碼用例:所有用戶都可見的功能,用于修改用戶的密碼信息。</p><p> ?。?)系統(tǒng)用例之間的關(guān)系:</p>
17、<p> ?、賹W(xué)生管理用例與選課、查看選課、退課三用例之間是包含關(guān)系。</p><p> ②教師管理用例與查看學(xué)生選課、提交成績兩用例之間是包含關(guān)系。</p><p> ?、坌畔⒐芾碛美c學(xué)生信息管理用例、教師信息管理用例和課程信息管理用例之間是包含關(guān)系。</p><p> ④學(xué)生信息管理用例與添加學(xué)生、修改學(xué)生信息和刪除學(xué)生三個(gè)用例之間是包含關(guān)系。
18、</p><p> ?、萁處熜畔⒐芾碛美c添加教師、修改教師信息和刪除教師三個(gè)用例之間是包含關(guān)系。</p><p> ?、拚n程信息管理用例與添加課程、修改課程信息和刪除課程三個(gè)用例之間是包含關(guān)</p><p><b> 2.4 類圖</b></p><p><b> 圖2 繪圖板類圖</b>&l
19、t;/p><p><b> 類圖說明:</b></p><p><b> 類圖說明:</b></p><p> (1)BaseUser類是一個(gè)系統(tǒng)角色用戶的基類,主要方法有兩個(gè):</p><p> modifyPWD() 用于修改用戶的密碼;</p><p> logi
20、nCheck() 用于用戶登錄驗(yàn)證。</p><p> ?。?)Admin類繼承自BaseUser類。</p><p> ?。?)Student類繼承自BaseUser類,主要方法有:</p><p> studentAdd() 用于添加學(xué)生;</p><p> studentDel() 用于刪除學(xué)生;</p><p&
21、gt; studentUpdate() 用于更新學(xué)生信息;</p><p> getStudents() 用于獲取學(xué)生列表。</p><p> (4)Teacher類繼承自BaseUser類,主要方法有:</p><p> teacherAdd() 用于添加教師;</p><p> teacherDel() 用于刪除教師;</
22、p><p> teacherUpdate() 用于更新教師信息;</p><p> getTeachers() 用于獲取教師列表。</p><p> ?。?)Course類是一個(gè)課程類,主要方法有:</p><p> courseAdd() 用于添加課程;</p><p> courseDel() 用于刪除課程;&
23、lt;/p><p> courseUpdate() 用于修改課程信息;</p><p> getCourses() 用于獲取課程列表。</p><p> (6)Elect類是一個(gè)選課表類,主要方法有:</p><p> elect() 選修課程;</p><p> electDel() 退選課程;</p&g
24、t;<p> getElectInfo() 獲取選課信息;</p><p> haveSubmit() 檢測是否已提交過成績;</p><p> submitScore() 提交成績。</p><p><b> 3. 系統(tǒng)總體設(shè)計(jì)</b></p><p><b> 3.1設(shè)計(jì)準(zhǔn)備<
25、/b></p><p> 1、此程序?yàn)閷?shí)現(xiàn)這些功能模塊,必須首先定義一個(gè)工具面板,將這些畫筆、畫</p><p> 箭頭、橢圓、圓、多邊形直線、畫矩形、畫筆顏色、畫筆大小、橡皮等功能組件放入這個(gè)工具面板中。</p><p> 2、此程序?yàn)閷?shí)現(xiàn)利用鼠標(biāo)做畫筆的功能,必會(huì)產(chǎn)生鼠標(biāo)事件MouseEvent。因此,為實(shí)現(xiàn)鼠標(biāo)畫圖的功能,必須用到鼠標(biāo)觸發(fā)事件,故在
26、此程序中,必須實(shí)現(xiàn)“委托事件模型”,用到事件源、事件對象以及監(jiān)聽者對象。</p><p> 3、此程序中,必須用到的包如下:</p><p> import java.awt.*;</p><p> import java.awt.geom.*;</p><p> import java.awt.event.*;</p>
27、<p> import javax.swing.*;</p><p> import java.io.*;</p><p> import java.util.*;</p><p><b> 3.2 需用到的類</b></p><p> ?。?)class DrawPad</p><
28、;p> 這個(gè)類是主類,是程序得以運(yùn)行的入口。在這個(gè)主類中定義了主方法,是該程序執(zhí)行的入口。</p><p> ?。?)class SimpleDrawPad</p><p> 此類用于實(shí)現(xiàn)這個(gè)程序的大部分功能,在這個(gè)類中除了定義一些基本變量以及構(gòu)造函數(shù)外,還定義了很多成員方法,這些成員方法將實(shí)現(xiàn)鼠標(biāo)觸發(fā)事件的一系列繪圖功能。</p><p> (3)cl
29、ass ButtonDealer(SimpleDrawPad內(nèi)部類)</p><p> 按鈕偵聽器ButtonDealer類,內(nèi)部類,用來偵聽基本按鈕的操作。</p><p> ?。?)class ButtonDealer1(SimpleDrawPad內(nèi)部類)</p><p> 按鈕偵聽器ButtonDealer1類,用來偵聽顏色選擇、畫筆粗細(xì)設(shè)置、文字輸入按鈕
30、的操作。</p><p> (5)class mouseA(SimpleDrawPad內(nèi)部類)</p><p> 鼠標(biāo)事件mouseA類,繼承了MouseAdapter,用來完成鼠標(biāo)相應(yīng)事件操作。</p><p> (6)class mouseB(SimpleDrawPad內(nèi)部類)</p><p> 鼠標(biāo)事件mouseB類繼承了Mou
31、seMotionAdapter,用來完成鼠標(biāo)拖動(dòng)和鼠標(biāo)移動(dòng)時(shí)的相應(yīng)操作。</p><p> (7)class checkBoxHandler(SimpleDrawPad內(nèi)部類)</p><p> 選擇字體風(fēng)格時(shí)候用到的事件偵聽器類,加入到字體風(fēng)格的選擇框中</p><p> (8)class DrawPanel(SimpleDrawPad內(nèi)部類)</p&
32、gt;<p> 畫圖面板類,用來畫圖。</p><p> (9)class drawings</p><p> 定義畫圖的基本圖形單元。</p><p> (10)class Line </p><p> 繼承class drawings 實(shí)現(xiàn)畫直線功能。</p><p> (11)class
33、 Rect</p><p> 繼承class drawings 實(shí)現(xiàn)畫矩形功能。</p><p> ?。?2)class fillRect</p><p> 繼承class drawings 實(shí)現(xiàn)畫實(shí)心矩形功能。</p><p> ?。?3)class Oval</p><p> 繼承class drawings
34、 實(shí)現(xiàn)畫橢圓功能。</p><p> (14)class fillOval</p><p> 繼承class drawings 實(shí)現(xiàn)畫實(shí)心橢圓功能。</p><p> ?。?5)class Circle</p><p> 繼承 class drawings 實(shí)現(xiàn)畫圓功能。</p><p> ?。?6)class
35、fillCircle</p><p> 繼承 class drawings 實(shí)現(xiàn)畫實(shí)心圓功能。</p><p> (17)class Pencil</p><p> 繼承 class drawings 實(shí)現(xiàn)自定義繪畫功能。</p><p> (18)class Rubber</p><p> 繼承 class
36、 drawings 實(shí)現(xiàn)清除圖案功能。</p><p> ?。?9)class word</p><p> 繼承 class drawings 實(shí)現(xiàn)輸入文字功能。</p><p> 畫板主要由以下幾個(gè)部分組成:</p><p> 主窗體的設(shè)計(jì):主類(painter)用來生成主界面,完成畫圖板的主要框架。主類由JFrame派生出來。主界面
37、由菜單欄、工具欄和畫圖區(qū)域三部分組成,布局格式采用BorderLayout布局形式。</p><p> (1)菜單欄的設(shè)計(jì)。菜單欄包括文件菜單欄、顏色菜單欄、線條粗細(xì)菜單欄和提示菜單欄。其中文件菜單欄包括文件的新建、打開、保存等選項(xiàng);顏色菜單欄可以進(jìn)行顏色選擇;線條粗細(xì)菜單欄設(shè)置線條的粗細(xì);提示菜單欄給出提示信息。</p><p> 工具欄由新建、打開和保存文件按鈕、基本圖形的按鈕、選
38、擇字體風(fēng)格復(fù)選框和字體下拉列表框組成。在主類中添加并對菜單欄和工具欄添加事件監(jiān)聽。</p><p> ?。?)事件響應(yīng)的處理。</p><p> 對菜單欄、工具欄和用鼠標(biāo)畫圖的事件響應(yīng)進(jìn)行處理。</p><p> 菜單欄中文件的新建、打開和保存菜單事件的處理:Java把每個(gè)文件都視作順序字節(jié)流。如果要在Java中進(jìn)行文件處理,則必須用到Java.io包。這個(gè)包定
39、義了一些流類,選用FileInputStream(從文件中讀入數(shù)據(jù))和FIleOutputStream(向文件輸出數(shù)據(jù)),通過建立這些文件的對象便可以打開文件。這些流相應(yīng)地從InputStream和OutputStream派生,這些文件均使用文件流,所以必須將文件結(jié)構(gòu)化以適應(yīng)程序的要求。我們需要對保存的對象序列化,然后以輸出流的方式保存。在程序中用newFile()、loadFile()和saveFile()三個(gè)函數(shù)分別實(shí)現(xiàn)文件的新建、
40、打開和保存。</p><p> 工具欄事件的處理:主要有一些Button組成。我們用ButtonHandler內(nèi)部類處理基本單元事件,ButtonHandler1內(nèi)部類處理新建、打開和保存文件按鈕,在畫圖類DrawPanel中定義CreateNewItem()函數(shù)處理工具欄中的畫圖事件。</p><p> 鼠標(biāo)畫圖:由于畫圖板主要是用來畫圖,所以需要在程序中添加對鼠標(biāo)按下、拖動(dòng)、進(jìn)入、
41、退出、移動(dòng)和單機(jī)事件進(jìn)行監(jiān)聽并進(jìn)行處理。內(nèi)部類mouseA定義了完成鼠標(biāo)按下、松開、進(jìn)入、退出事件響應(yīng)。內(nèi)部類mouseB完成鼠標(biāo)拖動(dòng)和移動(dòng)事件響應(yīng)。</p><p> 畫圖的基本功能。在程序設(shè)計(jì)中用到了動(dòng)態(tài)綁定,我們可以提取他們的公共屬性,先建立一個(gè)父類,然后建立各個(gè)子類,繼承父類中的方法并將父類中的draw函數(shù)重寫。一些關(guān)于圖形形狀的類,最主要是用于畫圖、字體和橡皮擦等基本類型。如Circle、Triang
42、le、Rectangle,它們都是有超類(Object類)派生的。在面向?qū)ο缶幊讨?,每個(gè)類都有畫出自己的能力,每個(gè)類都有自己的draw函數(shù),但每種形狀的draw函數(shù)都不一樣,但在繪制任何形狀時(shí),只需簡單調(diào)用父類drawing的draw方法,然后讓程序動(dòng)態(tài)地根據(jù)對象的類型決定使用哪個(gè)子類的draw方法。為了使畫出的圖形更加美觀,我們在draw函數(shù)中使用了Graphics2D的對象的引用。這樣可以在不改變原程序的情況下,添加擴(kuò)展的圖形,是程
43、序變得更加強(qiáng)大。同時(shí),為了文件的保存,父類實(shí)現(xiàn)Serialize接口,將對象線性化。</p><p><b> ?。?)總體設(shè)計(jì)圖</b></p><p> 圖2-1 總體設(shè)計(jì)流程</p><p><b> (2)各模塊功能</b></p><p> 表3-1 繪圖板系統(tǒng)功能模塊表</
44、p><p><b> 4. 詳細(xì)設(shè)計(jì)</b></p><p> 4.1 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)</p><p> 本程序主體為一個(gè)文件:MiniDrawPad.java。其中包括的程序段有:</p><p> MiniDrawPad():構(gòu)造函數(shù),用以初始化。</p><p> chooseCol
45、or():選擇當(dāng)前繪圖顏色程序段。</p><p> setStroke():設(shè)置當(dāng)前畫筆粗細(xì)程序段。</p><p> loadFile():調(diào)用圖形文件程序段。</p><p> newFile():新建一個(gè)圖形文件程序段。</p><p> saveFile():保存當(dāng)前所繪制圖形程序段。</p><p>
46、; creatNewItem():新建一個(gè)基本圖形單元程序段。</p><p><b> 相應(yīng)的內(nèi)部類有:</b></p><p> ButtonHandler:用來處理基本圖形單元的按鈕事件。</p><p> ButtonHandler1:用來處理顏色、畫壁粗細(xì)、文字輸入三個(gè)操作按鈕的按鈕事件。</p><p&g
47、t; DrawPanel:用來創(chuàng)建繪圖區(qū)域的子類。</p><p> MouseA:繼承了MouseAdapter,用來完成鼠標(biāo)相應(yīng)事件的操作,如單擊、松開、進(jìn)入和離開等。</p><p> MouseB:繼承MouseMotionAdapter,用來完成鼠標(biāo)拖動(dòng)和鼠標(biāo)移動(dòng)的相應(yīng)事件操作。</p><p> 此外,還繼承了父類drawings的基本圖形子類,
48、如前所述,這里不再重復(fù)。</p><p> 4.2系統(tǒng)功能模塊及主要類設(shè)計(jì)</p><p> 畫板主要由以下幾個(gè)部分組成:</p><p> 4.2.1主窗體的設(shè)計(jì)。</p><p> 主類(MiniDrawPad)用來生成主界面,完成畫圖板的主要框架。主類由JFrame派生出來。主界面由菜單欄、工具欄和畫圖區(qū)域三部分組成,布局格式采
49、用BorderLayout布局形式。</p><p> 4.2.2菜單欄和工具欄的設(shè)計(jì)。</p><p> 菜單欄包括文件菜單欄、顏色菜單欄、線條粗細(xì)菜單欄和提示菜單欄。其中①文件菜單欄包括文件的新建、打開、保存等選項(xiàng);②顏色菜單欄可以進(jìn)行顏色選擇;③線條粗細(xì)菜單欄設(shè)置線條的粗細(xì);④提示菜單欄給出提示信息。</p><p> 工具欄由新建、打開和保存文件按鈕、
50、基本圖形的按鈕、選擇字體風(fēng)格復(fù)選框和字體下拉列表框組成。在主類中添加并對菜單欄和工具欄添加事件監(jiān)聽。</p><p> 4.2.3事件響應(yīng)的處理。</p><p> 對菜單欄、工具欄和用鼠標(biāo)畫圖的事件響應(yīng)進(jìn)行處理。</p><p> ?。?)菜單欄中文件的新建、打開和保存菜單事件的處理:Java把每個(gè)文件都視作順序字節(jié)流。如果要在Java中進(jìn)行文件處理,則必須用
51、到Java.io包。這個(gè)包定義了一些流類,選用FileInputStream(從文件中讀入數(shù)據(jù))和FIleOutputStream(向文件輸出數(shù)據(jù)),通過建立這些文件的對象便可以打開文件。這些流相應(yīng)地從InputStream和OutputStream派生,這些文件均使用文件流,所以必須將文件結(jié)構(gòu)化以適應(yīng)程序的要求。我們需要對保存的對象序列化,然后以輸出流的方式保存。在程序中用newFile()、loadFile()和saveFile()
52、三個(gè)函數(shù)分別實(shí)現(xiàn)文件的新建、打開和保存。</p><p> ?。?)工具欄事件的處理:主要有一些Button組成。我們用ButtonHandler內(nèi)部類處理基本單元事件,ButtonHandler1內(nèi)部類處理新建、打開和保存文件按鈕,在畫圖類DrawPanel中定義CreateNewItem()函數(shù)處理工具欄中的畫圖事件。</p><p> ?。?)鼠標(biāo)畫圖:由于畫圖板主要是用來畫圖,所以
53、需要在程序中添加對鼠標(biāo)按下、拖動(dòng)、進(jìn)入、退出、移動(dòng)和單機(jī)事件進(jìn)行監(jiān)聽并進(jìn)行處理。內(nèi)部類mouseA定義了完成鼠標(biāo)按下、松開、進(jìn)入、退出事件響應(yīng)。內(nèi)部類mouseB完成鼠標(biāo)拖動(dòng)和移動(dòng)事件響應(yīng)。</p><p><b> 4.2需用到的類</b></p><p> 1 )class Point</p><p> 此類用于定義一組數(shù)據(jù)成員,并且
54、使用構(gòu)造函數(shù)將他們分別初使化,以方便在下面的程序中使用他們。</p><p> 2)class paintboard </p><p> 此類用于實(shí)現(xiàn)這個(gè)程序的大部分功能,在這個(gè)類中除了定義一些基本變量以及構(gòu)造函數(shù)外,還定義了很多成員方法,這些成員方法將實(shí)現(xiàn)鼠標(biāo)觸發(fā)事件的一系列繪圖功能。</p><p> 3 )public class PaintBrush&
55、lt;/p><p> 這個(gè)類是主類,是程序得以運(yùn)行的入口。在這個(gè)主類中定義了主方法,是該程序執(zhí)行的入口。</p><p><b> 5.詳細(xì)設(shè)計(jì)</b></p><p><b> 5.1類的設(shè)計(jì)</b></p><p> 1) class Point</p><p>
56、在這個(gè)類中定義了用于截?cái)嗟囊幌盗袠?biāo)志變量,有初始坐標(biāo)、顏色、工具選擇等,并且在這個(gè)類中還定義了構(gòu)造函數(shù)Point(int x, int y, Color col, int tool, int boarder),用于完成對這些變量的初始化工作。</p><p> 2)class paintboard </p><p> 這個(gè)類用來實(shí)現(xiàn)整個(gè)程序的大部分功能,并且在這個(gè)類中定義了大部分的成員
57、函數(shù)和成員方法,在這個(gè)類中用到的主要成員方法如下:</p><p> Public void paint(Graphics g)</p><p> public void itemStateChanged(ItemEvent e)</p><p> public void mouseDragged(MouseEvent e)</p><p&
58、gt; public void mousePressed(MouseEvent e)</p><p> public void mouseReleased(MouseEvent e)</p><p> public void mouseEntered(MouseEvent e){}</p><p> public void mouseExited(Mouse
59、Event e){}</p><p> public void mouseClicked(MouseEvent e){}</p><p> public void mouseMoved(MouseEvent e){} </p><p> public void actionPerformed(ActionEvent e)</p><p&g
60、t;<b> 5.2類的方法介紹</b></p><p><b> 定義的變量:</b></p><p> 在這個(gè)類中,首先定義了畫筆的大小、畫筆的顏色、畫筆的粗細(xì)、橡皮的大小、工具的選擇等一些變量,并且還用到了系統(tǒng)中自帶的一些類初使化了一些面板工具對象,用于完成對面板工具、畫直線、畫橢圓、畫矩形、橡皮擦、清除等一些工具按鈕的定義。<
61、/p><p><b> 初使化構(gòu)造函數(shù):</b></p><p> 在這個(gè)初使化構(gòu)造函數(shù)中,首先繼承了父類Frame,然后初使化了各工具按鈕以及各個(gè)選擇項(xiàng),包括顏色選擇、畫筆大小選擇、橡皮大小選擇,并且將這些組件添加到了工具面板中,最后還對各個(gè)組件注冊了事件監(jiān)聽者對象。</p><p> paint()方法:</p><p
62、> 這個(gè)方法主要用于在Applet的界面中顯示文字、圖形和其它界面元素。本程序中,在這個(gè)方法中,定義了一些工具選項(xiàng)設(shè)置,給用戶選擇畫筆、畫直線、畫圓、橡皮擦等一些功能。</p><p> itemStateChanged()方法:</p><p> 這個(gè)方法用來實(shí)現(xiàn)的功能很簡單,主要是用來改變畫筆大小、畫筆顏色、橡皮大小的。在此方法中,設(shè)置了大小以及顏色的一些預(yù)選項(xiàng),以供用戶對
63、大小以及顏色做出選擇。</p><p> mouseDragged()方法:</p><p> 此方法是處理MouseEvent事件以實(shí)現(xiàn)MouseMotionListener接口的對象。MouseMotionListener是事件監(jiān)聽者,mouseDragged(MouseEvent e)是成員方法,代表鼠標(biāo)拖動(dòng)事件,在這個(gè)方法中,還用到了MouseEvent類常用成員方法:publ
64、ic int getX()以及public int getY(),用來返回發(fā)生鼠標(biāo)事件的X及Y的坐標(biāo)。這個(gè)方法中,主要用來控件畫筆和橡皮的轉(zhuǎn)換。</p><p> mousePressed()方法:</p><p> 此方法是處理MouseEvent事件以實(shí)現(xiàn)MouseListener接口的對象。MouseListener是事件監(jiān)聽者,mouseDPressed(MouseEvent
65、e)是成員方法,代表鼠標(biāo)按下事件。這個(gè)方法主要用來控件用戶畫直線、畫圓、畫矩形這些功能之間的轉(zhuǎn)換。</p><p> ⑦ mouseReleased()方法:</p><p> mouseEntered()方法:</p><p> mouseExited()方法:</p><p> mouseClicked()方法:</p>
66、;<p> 這些方法和mousePressed()方法屬于同一類,他主要用來表示鼠標(biāo)釋放事件,是對上述各個(gè)功能完成后對鼠標(biāo)事件的又一次觸發(fā)。</p><p> 基本圖形包括以下幾種:</p><p> Pencil:隨筆畫,圖標(biāo)為:。 Line:直線,圖標(biāo)為:。</p><p> Curve:曲線,圖標(biāo)為:。
67、 Rect:矩形,圖標(biāo)為:。</p><p> Ellipse:橢圓,圖標(biāo)為:。 Circle:圓,圖標(biāo)為:。</p><p> RoundRect:圓角矩形,圖標(biāo)為:。 Eraser:橡皮擦,圖標(biāo)為:。</p><p> RectSelect:橢圓選擇工具,圖標(biāo)為:。 PaintBucket:顏色填充,圖標(biāo)
68、為:。</p><p> Font:文本,圖標(biāo)為:。 ColorPicker:顏色選取器,圖標(biāo)為:。</p><p> 繪圖時(shí),單擊工具欄上相應(yīng)圖形的圖標(biāo),然后用鼠標(biāo)拖動(dòng),在繪圖區(qū)域內(nèi)進(jìn)行繪圖即可。</p><p> 4.1.1設(shè)置工具屬性</p><p> 鼠標(biāo)單擊工具欄相應(yīng)圖形的圖標(biāo)時(shí),在菜單欄下面就
69、會(huì)出現(xiàn)各工具相應(yīng)的屬性,例如當(dāng)選中橢圓工具時(shí),就會(huì)出現(xiàn)有關(guān)橢圓的屬性(設(shè)置線條的寬度,線條的樣式:實(shí)線或虛線,線條的平滑與否,以及內(nèi)部是否填充顏色),如下圖:</p><p><b> 4.1.2編輯顏色</b></p><p> 點(diǎn)擊Line Color(File Color),然后在或者點(diǎn)擊Edit Color選擇所要的顏色,即可設(shè)置線條顏色(矩形等內(nèi)部的填充
70、顏色)。</p><p> 點(diǎn)擊Edit Color后出現(xiàn)界面:</p><p><b> 圖</b></p><p> 三、課程設(shè)計(jì)總結(jié)或結(jié)論</p><p> 為了提高我們的實(shí)踐能力,讓我們學(xué)以致用,能靈活運(yùn)用所學(xué)的知識(shí)進(jìn)行再創(chuàng)造,學(xué)校特安排我們進(jìn)行為期二周的java課程設(shè)計(jì)實(shí)習(xí),并安排了指導(dǎo)老師幫助輔導(dǎo),讓
71、我們在規(guī)范化、嚴(yán)謹(jǐn)化、實(shí)用化上面有了很大進(jìn)展。</p><p> 在此次Windows繪圖板程序開發(fā)過程中,有很多東西值得我們思考并總結(jié)。</p><p> 開發(fā)過程大體可分為以下幾個(gè)步驟:</p><p> (1)思考總體設(shè)計(jì)方案:總體結(jié)構(gòu)和模塊外部設(shè)計(jì),功能分配。思考要實(shí)現(xiàn)整個(gè)程序大體需要的幾個(gè)模塊和其中用到的java語言基本操作符、語句等。</p&
72、gt;<p> (2)畫出總體設(shè)計(jì)方案流程圖:用流程圖的形式展現(xiàn)你的基本編程思想。</p><p> (3)流程圖具體化:即將流程圖中的幾大模塊的具體實(shí)現(xiàn)思考清楚,可以用流程圖的形式展現(xiàn).并想好實(shí)現(xiàn)的關(guān)鍵代碼。</p><p> ?。?)編輯程序代碼:這是一個(gè)至關(guān)重要復(fù)雜而且需要反復(fù)修改的環(huán)節(jié),在此環(huán)節(jié)中你將發(fā)現(xiàn)總體設(shè)計(jì)和模塊思想會(huì)存在很多問題,需不斷改進(jìn).如何實(shí)現(xiàn)各函數(shù)
73、功能,達(dá)到預(yù)期效果也將是一項(xiàng)繁復(fù)的工作。</p><p> (5)代碼的調(diào)試:在eclipse環(huán)境下輸入代碼并進(jìn)行調(diào)試和正確運(yùn)行。在調(diào)試過程中會(huì)遇到很多需要精化的地方,需要十足的耐心與細(xì)心,不斷改進(jìn)完善程序。</p><p> ?。?)最后修飾:程序可以正確運(yùn)行之后,再不影響程序功能的情況下,運(yùn)用各種輔助性符號(hào),使界面更加美觀漂亮,操作更人性化.增強(qiáng)程序的新意與可行性?!?lt;/p&g
74、t;<p> 通過這次課程設(shè)計(jì),使我們更加熟悉的掌握了java語言的運(yùn)用。幫助我們熟悉了更多java語言的功能,提高了我們的動(dòng)手能力,學(xué)到了許多解決實(shí)際問題的寶貴經(jīng)驗(yàn).同時(shí)也挖掘出了我們潛在的能力,使我們對自己更有自信,對編程也更有興趣。我相信,只要努力、勤奮、堅(jiān)持不懈,就沒有什么做不到的事,不能還沒開始就退縮,要勇于拼搏,敢于創(chuàng)新。</p><p><b> 。</b>&
75、lt;/p><p><b> 四、參考文獻(xiàn)</b></p><p> [1] 清華大學(xué)出版社的《java2實(shí)用教程》(第三版),張躍平、耿祥義著。</p><p> [2] 清華大學(xué)出版社的《java程序設(shè)計(jì)》,陳勇孝著。</p><p> [3] 清華大學(xué)出版社的《Java就業(yè)培訓(xùn)教程》,張孝祥著。</p&g
溫馨提示
- 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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手寫繪圖板的設(shè)計(jì)
- 手寫繪圖板的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 基于arm的手寫繪圖板設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 基于arm的手寫繪圖板設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 軟件工程課程設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)
- 《軟件工程》課程設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)--倉庫管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 軟件工程課程設(shè)計(jì)--機(jī)票預(yù)訂系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 軟件工程課程設(shè)計(jì)--網(wǎng)站設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)報(bào)告
- 軟件工程課程設(shè)計(jì)案例
- 軟件工程課程設(shè)計(jì)-電梯
- 軟件工程課程設(shè)計(jì)報(bào)告
- 軟件工程課程設(shè)計(jì)作業(yè)
- 軟件工程課程設(shè)計(jì)文檔
- 《軟件工程》課程網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
評論
0/150
提交評論