2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(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>  班 級(jí): 10軟工3班 </p><p>  日期:2013 年 6 月 4 日</p><p><b>  摘要:</b></p><p>  Windows畫圖板系統(tǒng)的開發(fā)最主要包括前端應(yīng)用程序的開發(fā)。對(duì)前端應(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)行、測(cè)試的詳細(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>  (1)新建空白文檔;</p><p><b> ?。?)文件保存;</b></p><p>  (3)繪制一些基本的圖形組件(直線、矩形、實(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> ?。?)“鉛筆”的功能:用來畫出的任意直線。</p><p> ?。?)“直線”的功能:用來讓

10、用戶更好的畫出的直線。</p><p> ?。?)“刷子”的功能:用來讓用戶更好的畫出的圖形。</p><p> ?。?)“吸管”的功能:用來讓用戶得到圖片的顏色。</p><p>  (6)“字體”的功能:用來讓用戶寫出自己的字體。</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> ?。?)系統(tǒng)主要用例的文檔描述:</p><p> ?、賹W(xué)生管理用例:學(xué)生用戶可見的功能,包含了選課、退課和查看選課三個(gè)用例功能。</p><p>  ②教師管理用例:教師用戶可見的功能,包含了查看學(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> ?、诮處煿芾碛美c查看學(xué)生選課、提交成績兩用例之間是包含關(guān)系。</p><p> ?、坌畔⒐芾碛美c學(xué)生信息管理用例、教師信息管理用例和課程信息管理用例之間是包含關(guān)系。</p><p> ?、軐W(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> ?。?)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> ?。?)Teacher類繼承自BaseUser類,主要方法有:</p><p>  teacherAdd() 用于添加教師;</p><p>  teacherDel() 用于刪除教師;</

22、p><p>  teacherUpdate() 用于更新教師信息;</p><p>  getTeachers() 用于獲取教師列表。</p><p>  (5)Course類是一個(gè)課程類,主要方法有:</p><p>  courseAdd() 用于添加課程;</p><p>  courseDel() 用于刪除課程;&

23、lt;/p><p>  courseUpdate() 用于修改課程信息;</p><p>  getCourses() 用于獲取課程列表。</p><p> ?。?)Elect類是一個(gè)選課表類,主要方法有:</p><p>  elect() 選修課程;</p><p>  electDel() 退選課程;</p&g

24、t;<p>  getElectInfo() 獲取選課信息;</p><p>  haveSubmit() 檢測(cè)是否已提交過成績;</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)“委托事件模型”,用到事件源、事件對(duì)象以及監(jiān)聽者對(duì)象。</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>  (2)class SimpleDrawPad</p><p>  此類用于實(shí)現(xiàn)這個(gè)程序的大部分功能,在這個(gè)類中除了定義一些基本變量以及構(gòu)造函數(shù)外,還定義了很多成員方法,這些成員方法將實(shí)現(xiàn)鼠標(biāo)觸發(fā)事件的一系列繪圖功能。</p><p> ?。?)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> ?。?4)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> ?。?7)class Pencil</p><p>  繼承 class drawings 實(shí)現(xiàn)自定義繪畫功能。</p><p> ?。?8)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> ?。?)菜單欄的設(shè)計(jì)。菜單欄包括文件菜單欄、顏色菜單欄、線條粗細(xì)菜單欄和提示菜單欄。其中文件菜單欄包括文件的新建、打開、保存等選項(xiàng);顏色菜單欄可以進(jìn)行顏色選擇;線條粗細(xì)菜單欄設(shè)置線條的粗細(xì);提示菜單欄給出提示信息。</p><p>  工具欄由新建、打開和保存文件按鈕、基本圖形的按鈕、選

38、擇字體風(fēng)格復(fù)選框和字體下拉列表框組成。在主類中添加并對(duì)菜單欄和工具欄添加事件監(jiān)聽。</p><p> ?。?)事件響應(yīng)的處理。</p><p>  對(duì)菜單欄、工具欄和用鼠標(biāo)畫圖的事件響應(yīng)進(jìn)行處理。</p><p>  菜單欄中文件的新建、打開和保存菜單事件的處理:Java把每個(gè)文件都視作順序字節(jié)流。如果要在Java中進(jìn)行文件處理,則必須用到Java.io包。這個(gè)包定

39、義了一些流類,選用FileInputStream(從文件中讀入數(shù)據(jù))和FIleOutputStream(向文件輸出數(shù)據(jù)),通過建立這些文件的對(duì)象便可以打開文件。這些流相應(yīng)地從InputStream和OutputStream派生,這些文件均使用文件流,所以必須將文件結(jié)構(gòu)化以適應(yīng)程序的要求。我們需要對(duì)保存的對(duì)象序列化,然后以輸出流的方式保存。在程序中用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)畫圖:由于畫圖板主要是用來畫圖,所以需要在程序中添加對(duì)鼠標(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ù)對(duì)象的類型決定使用哪個(gè)子類的draw方法。為了使畫出的圖形更加美觀,我們?cè)赿raw函數(shù)中使用了Graphics2D的對(duì)象的引用。這樣可以在不改變?cè)绦虻那闆r下,添加擴(kuò)展的圖形,是程

43、序變得更加強(qiáng)大。同時(shí),為了文件的保存,父類實(shí)現(xiàn)Serialize接口,將對(duì)象線性化。</p><p><b>  (1)總體設(shè)計(jì)圖</b></p><p>  圖2-1  總體設(shè)計(jì)流程</p><p><b> ?。?)各模塊功能</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ù)選框和字體下拉列表框組成。在主類中添加并對(duì)菜單欄和工具欄添加事件監(jiān)聽。</p><p>  4.2.3事件響應(yīng)的處理。</p><p>  對(duì)菜單欄、工具欄和用鼠標(biāo)畫圖的事件響應(yīng)進(jìn)行處理。</p><p> ?。?)菜單欄中文件的新建、打開和保存菜單事件的處理:Java把每個(gè)文件都視作順序字節(jié)流。如果要在Java中進(jìn)行文件處理,則必須用

51、到Java.io包。這個(gè)包定義了一些流類,選用FileInputStream(從文件中讀入數(shù)據(jù))和FIleOutputStream(向文件輸出數(shù)據(jù)),通過建立這些文件的對(duì)象便可以打開文件。這些流相應(yīng)地從InputStream和OutputStream派生,這些文件均使用文件流,所以必須將文件結(jié)構(gòu)化以適應(yīng)程序的要求。我們需要對(duì)保存的對(duì)象序列化,然后以輸出流的方式保存。在程序中用newFile()、loadFile()和saveFile()

52、三個(gè)函數(shù)分別實(shí)現(xiàn)文件的新建、打開和保存。</p><p> ?。?)工具欄事件的處理:主要有一些Button組成。我們用ButtonHandler內(nèi)部類處理基本單元事件,ButtonHandler1內(nèi)部類處理新建、打開和保存文件按鈕,在畫圖類DrawPanel中定義CreateNewItem()函數(shù)處理工具欄中的畫圖事件。</p><p>  (3)鼠標(biāo)畫圖:由于畫圖板主要是用來畫圖,所以

53、需要在程序中添加對(duì)鼠標(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),用于完成對(duì)這些變量的初始化工作。</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)中自帶的一些類初使化了一些面板工具對(duì)象,用于完成對(duì)面板工具、畫直線、畫橢圓、畫矩形、橡皮擦、清除等一些工具按鈕的定義。<

61、/p><p><b>  初使化構(gòu)造函數(shù):</b></p><p>  在這個(gè)初使化構(gòu)造函數(shù)中,首先繼承了父類Frame,然后初使化了各工具按鈕以及各個(gè)選擇項(xiàng),包括顏色選擇、畫筆大小選擇、橡皮大小選擇,并且將這些組件添加到了工具面板中,最后還對(duì)各個(gè)組件注冊(cè)了事件監(jiān)聽者對(duì)象。</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),以供用戶對(duì)

63、大小以及顏色做出選擇。</p><p>  mouseDragged()方法:</p><p>  此方法是處理MouseEvent事件以實(shí)現(xiàn)MouseMotionListener接口的對(duì)象。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接口的對(duì)象。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)釋放事件,是對(duì)上述各個(gè)功能完成后對(duì)鼠標(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、我們?cè)谝?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> ?。?)畫出總體設(shè)計(jì)方案流程圖:用流程圖的形式展現(xiàn)你的基本編程思想。</p><p> ?。?)流程圖具體化:即將流程圖中的幾大模塊的具體實(shí)現(xiàn)思考清楚,可以用流程圖的形式展現(xiàn).并想好實(shí)現(xiàn)的關(guān)鍵代碼。</p><p>  (4)編輯程序代碼:這是一個(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> ?。?)代碼的調(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í)也挖掘出了我們潛在的能力,使我們對(duì)自己更有自信,對(duì)編程也更有興趣。我相信,只要努力、勤奮、堅(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論