2021年Java畫圖軟件設(shè)計(jì)報(bào)告_第1頁(yè)
2021年Java畫圖軟件設(shè)計(jì)報(bào)告_第2頁(yè)
2021年Java畫圖軟件設(shè)計(jì)報(bào)告_第3頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、佛山科學(xué)技術(shù)學(xué)院可視化編程技術(shù)課程設(shè)計(jì)報(bào)告畫圖軟件設(shè)計(jì)學(xué)生姓名周敏婷學(xué)號(hào)211914123年級(jí)專業(yè)11級(jí)教育技術(shù)學(xué)2班指導(dǎo)老師容汝佳學(xué)院教育科學(xué)學(xué)院廣東佛山提交日期213年6月目錄 前言 (2)2概要設(shè)計(jì) (3)1 開(kāi)發(fā)環(huán)境 (3)2 畫圖軟件功能 (3)3 界面設(shè)計(jì) (3)4 類的框架結(jié)構(gòu)圖 (4) 詳細(xì)設(shè)計(jì) (4)1 使用的java類的說(shuō)明 (4)2 類的主要方法 (5)1 顏色選擇器 (5)2 控制畫筆樣式 (5)3 選取顏色按鈕的監(jiān)聽(tīng)件類 (6)4 設(shè)計(jì)總體認(rèn)識(shí) (6)5 程序流程圖 (7) 運(yùn)行結(jié)果 (7) 測(cè)試分析 (8)1 程序運(yùn)行情況 (8) 源程序 (8)參考文獻(xiàn) (14)設(shè)

2、計(jì)總結(jié) (14)摘要該程序是一個(gè)圖形界面的簡(jiǎn)單的java畫圖軟件,具有良好的界面,使用人員能快捷簡(jiǎn)單地進(jìn)行操作。該畫圖軟件操作較為簡(jiǎn)單,只需要一直按著左鍵就能根據(jù)你鼠標(biāo)移動(dòng)的方面,畫出你想要的圖案。你也可以選擇你自己想到的顏色和畫筆的粗細(xì)。而且可以顯示你當(dāng)前的畫筆的狀態(tài)。界面為灰白對(duì)稱。是一個(gè)非常簡(jiǎn)單的作圖工具,讓人能輕松上手。關(guān)鍵字java,畫圖類,方法,事件1 前言隨著科學(xué)技術(shù)的不斷發(fā)展,計(jì)算機(jī)已經(jīng)成為我們工作學(xué)習(xí)和生活中不可缺少的工具。文本編輯器是個(gè)人計(jì)算機(jī)最司空見(jiàn)慣的應(yīng)用程序了,在學(xué)習(xí)了java語(yǔ)言之后,我決定使用java語(yǔ)言編寫一個(gè)簡(jiǎn)單的畫圖工具,可以實(shí)現(xiàn)簡(jiǎn)單的畫圖作圖功能,滿足日常

3、基本的工作學(xué)習(xí)和娛樂(lè)需要。java是由sun公司開(kāi)發(fā)的新一代純面向?qū)ο蟮木W(wǎng)絡(luò)編程語(yǔ)言。其目標(biāo)是建立一種在任意種機(jī)器、任一種操作系統(tǒng)的網(wǎng)絡(luò)環(huán)境中運(yùn)行的軟件,實(shí)行所謂的“程序?qū)懸淮?,到處運(yùn)行”的目標(biāo)。正因?yàn)槿绱耍琷ava已成為當(dāng)今internet上最流行、最受歡迎的一種程序開(kāi)發(fā)語(yǔ)言。java開(kāi)發(fā)小組把java按特性分為基本版、移動(dòng)版、企業(yè)版,每個(gè)版本有一個(gè)軟件開(kāi)發(fā)包。java基本版本叫java 2標(biāo)準(zhǔn)版(java 2 standard edition,j2se),它包含建立java應(yīng)用程序或者是applet所需的應(yīng)用程序編程接口(api)。java 2移動(dòng)版(the java 2 mobile e

4、dition,j2me)包含創(chuàng)建無(wú)線java應(yīng)用程序的api。還有java 2企業(yè)版(the java 2 enterprise,j2ee)是j2se的增強(qiáng)版本,包含建立多層架構(gòu)應(yīng)用程序api。java語(yǔ)言是由c+語(yǔ)言發(fā)展起而來(lái)的,是一種徹底的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。作為一種純面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它非常適合大型軟件的開(kāi)發(fā)。java 語(yǔ)言去掉了c+語(yǔ)言的一些容易引起錯(cuò)誤的特性。java語(yǔ)言的特點(diǎn)有面向?qū)ο?、跨平臺(tái)、安全性、多線程和圖形功能強(qiáng)。2 概要設(shè)計(jì)1開(kāi)發(fā)環(huán)境開(kāi)發(fā)平臺(tái)microsoft windows xp professional service pack 2開(kāi)發(fā)工具jbuilder

5、27 + jdk _22畫圖軟件功能功能1按著鼠標(biāo)左鍵能隨心所欲的畫出想要的圖形功能2可自助地選擇畫筆的粗細(xì)功能3可自助地顏色選擇功能4可以顯示你當(dāng)前的畫筆狀態(tài)3界面設(shè)計(jì)圖3 畫圖面板4類的框架結(jié)構(gòu)圖drawpane屬性package kasa;操作public class drawpane extends frameclass buttoncoloraction implements actionlistenerc lass buttoncursor extends mouseadapterclass buttonstrokeaction implements actionlistenerc

6、lass palette extends panel implements mouselistener,mousemotionlistener圖43詳細(xì)設(shè)計(jì)1畫圖軟件使用的java類的說(shuō)明類名drawpane類作用主類,繼承的父類 frame類,構(gòu)造方法drawpane()實(shí)現(xiàn)了放各種組件,界面的構(gòu)造,構(gòu)造畫圖板顏色選擇器和畫筆的粗細(xì)等功能類名buttoncoloraction 實(shí)現(xiàn)的接口actionlistener作用選取顏色按鈕的監(jiān)聽(tīng)事件類監(jiān)聽(tīng)按鈕動(dòng)作類名buttoncursor作用鼠標(biāo)進(jìn)入按鈕變換光標(biāo)樣式監(jiān)聽(tīng)事件類繼承的類mouseadapter 繼承了鼠標(biāo)的適配器類名buttonstr

7、okeaction作用設(shè)置畫筆的監(jiān)聽(tīng)事件類實(shí)現(xiàn)的接口actionlistener 作用選取顏色按鈕的監(jiān)聽(tīng)事件類監(jiān)聽(tīng)按鈕動(dòng)作類名palette 繼承的父類panel類作用畫板類實(shí)現(xiàn)的接口mouselistener, mousemotionlistener 重寫了鼠標(biāo)監(jiān)聽(tīng)器的五個(gè)方法mousemoved(mouseevent e)、mousedragged(mouseevent e)、mouseexited(mouseevent e)、mouseentered(mouseevent e)和mousereleased(mouseevent e)。同時(shí)實(shí)現(xiàn)了mousemotionlistener接口,

8、調(diào)用addmousemotionlistener(this)方法對(duì)鼠標(biāo)的動(dòng)作進(jìn)行監(jiān)聽(tīng)2類的主要方法1 顏色選擇器panel pane=new panel(new gridlayout(2, 1); / 畫筆顏色選擇器panel panecolor=new panel(new gridlayout(1, 13); / 12 個(gè)顏色選擇按鈕button buttoncolor=new button12;color color= color.black, color.blue, color.cyan, color.darkgray,color.gray, color.green, color.mag

9、enta, color.orange,color.pink, color.red, color.white, color.yellow; / 顯示當(dāng)前顏色的面板2控制畫筆樣式panel panestroke=new panel(new gridlayout(1, 13); / 控制畫筆樣式buttonstrokeaction=new buttonstrokeaction();button buttonstroke=new button11;buttonstroke=new button(1);buttonstroke1=new button(3);buttonstroke2=new butto

10、n(5);buttonstroke3=new button(7);buttonstroke4=new button(9);buttonstroke5=new button(11);buttonstroke6=new button(13);buttonstroke7=new button(15);buttonstroke8=new button(17);buttonstroke9=new button();buttonstroke1=new button();drawwidth=new label(顏色, label.center);drawcap=new label(, label.cente

11、r);drawwidth.setbackground(color.lightgray);drawcap.setbackground(color.lightgray);panestroke.add(drawwidth);3選取顏色按鈕的監(jiān)聽(tīng)事件類class buttoncoloraction implements actionlistener public void actionperformed(actionevent e) colorcolor_temp=(button) e.getsource().getbackground();noncecolor.setbackground(color

12、_temp);palette.setcolor(color_temp);4設(shè)計(jì)的總體認(rèn)識(shí)ja v a設(shè)計(jì)的摘要ja v a設(shè)計(jì)的目錄結(jié)構(gòu)ja v a設(shè)計(jì)的概要和詳細(xì)設(shè)計(jì)ja v a設(shè)計(jì)的版權(quán)意識(shí)ja v a設(shè)計(jì)需要編譯的環(huán)境ja v a設(shè)計(jì)的實(shí)用性5程序流程圖開(kāi)始圖3繪制畫圖軟件方法pad圖4運(yùn)行結(jié)果圖4 畫圖軟件結(jié)果顯示粗細(xì)選擇顏色選擇繪圖繪圖5測(cè)試分析1程序運(yùn)行情況:當(dāng)運(yùn)行程序的時(shí)候,你可以進(jìn)入界面,單擊你所需要的顏色和畫筆的粗細(xì)來(lái)進(jìn)行作圖。當(dāng)你覺(jué)得你對(duì)你的畫不滿意的時(shí)候,你可以選擇白色來(lái)清除你的畫面。6 程序清單package kasa;import java.awt.basicstro

13、ke;import java.awt.borderlayout;import java.awt.button;import java.awt.color;import java.awt.cursor;import java.awt.dimension;import java.awt.frame;import java.awt.graphics;import java.awt.graphics2d;import java.awt.gridlayout;import import java.awt.panel;import java.awt.renderinghints;import java.a

14、wt.event.actionevent;import java.awt.event.actionlistener;import java.awt.event.mouseadapter;import java.awt.event.mouseevent;import java.awt.event.mouselistener;import java.awt.event.mousemotionlistener;import java.awt.event.windowadapter;import java.awt.event.windowevent;import java.awt.image.buff

15、eredimage;public class drawpane extends frame / 畫板private palette palette=null; / 顯示當(dāng)前顏色的面板private panel noncecolor=null; / 畫筆粗細(xì)private label drawwidth=null; / 畫筆端點(diǎn)的裝飾private label drawcap=null; / 選取顏色按鈕的監(jiān)聽(tīng)事件類private buttoncoloraction buttoncoloraction=null;/ 鼠標(biāo)進(jìn)入按鈕后光標(biāo)樣式的監(jiān)聽(tīng)事件類private buttoncursor bu

16、ttoncursor=null; / 畫筆樣式的監(jiān)聽(tīng)事件private buttonstrokeaction buttonstrokeaction=null;public drawpane() / 設(shè)置標(biāo)題欄文字super(java版畫圖小工具); / 構(gòu)造一個(gè)畫圖板palette=new palette();panel pane=new panel(new gridlayout(2, 1); / 畫筆顏色選擇器panel panecolor=new panel(new gridlayout(1, 13); / 12 個(gè)顏色選擇按鈕button buttoncolor=new button12

17、;color color= color.black, color.blue, color.cyan, color.darkgray,color.gray, color.green, color.magenta, color.orange,color.pink, color.red, color.white, color.yellow; / 顯示當(dāng)前顏色的面板noncecolor=new panel();noncecolor.setbackground(color.black);panecolor.add(noncecolor);buttoncoloraction=new buttoncolor

18、action();buttoncursor=new buttoncursor();for (int i=; i buttoncolor.length; i+) buttoncolori=new button();buttoncolori.setbackground(colori);buttoncolori.addactionlistener(buttoncoloraction);buttoncolori.addmouselistener(buttoncursor);panecolor.add(buttoncolori);pane.add(panecolor); / 畫筆顏色選擇器panel p

19、anestroke=new panel(new gridlayout(1, 13); / 控制畫筆樣式buttonstrokeaction=new buttonstrokeaction();button buttonstroke=new button11;buttonstroke=new button(1);buttonstroke1=new button(3);buttonstroke2=new button(5);buttonstroke3=new button(7);buttonstroke4=new button(9);buttonstroke5=new button(11);butt

20、onstroke6=new button(13);buttonstroke7=new button(15);buttonstroke8=new button(17);buttonstroke9=new button();buttonstroke1=new button();drawwidth=new label(粗細(xì), label.center);drawcap=new label(, label.center);drawwidth.setbackground(color.lightgray);drawcap.setbackground(color.lightgray);panestroke.

21、add(drawwidth);for (int i=; i buttonstroke.length; i+) panestroke.add(buttonstrokei);buttonstrokei.addmouselistener(buttoncursor);buttonstrokei.addactionlistener(buttonstrokeaction);if (i =8) buttonstrokei.setname(width); else buttonstrokei.setname(cap);if (i=8) panestroke.add(drawcap);pane.add(pane

22、stroke); / 將畫筆顏色選擇器添加到窗體中this.add(pane, borderlayout.north); / 將畫圖板添加到窗體中this.add(palette); / 添加窗口監(jiān)聽(tīng),點(diǎn)擊關(guān)閉按鈕時(shí)退出程序this.addwindowlistener(new windowadapter() public void windowclosing(windowevent e) system.exit();); / 設(shè)置窗口的大小this.setsize(new dimension(4, 43); / 設(shè)置窗口位置,處于屏幕正中央this.setlocationrelativeto(

23、null); / 顯示窗口this.setvisible(true);public static void main(string args) new drawpane();class buttoncoloraction implements actionlistener public void actionperformed(actionevent e) color color_temp=(button)e.getsource().getbackground();noncecolor.setbackground(color_temp);palette.setcolor(color_temp)

24、;class buttoncursor extends mouseadapter public void mouseentered(mouseevent e) (button) e.getsource().setcursor(new cursor(cursor.hand_cursor);public void mouseexited(mouseevent e) (button) e.getsource().setcursor(new cursor(cursor.default_cursor);class buttonstrokeaction implements actionlistener

25、public void actionperformed(actionevent e) button button_temp=(button) e.getsource();string name=button_temp.getname();if (name.equalsignorecase(width) drawwidth.settext(button_temp.getlabel();palette.setstroke(float.parsefloat(button_temp.getlabel(); else if (name.equalsignorecase(cap) drawcap.sett

26、ext(button_temp.getlabel();if (button_temp.getlabel().equals() palette.setstroke(basicstroke.cap_square); else if (button_temp.getlabel().equals() palette.setstroke(basicstroke.cap_round);class palette extends panel implements mouselistener, mousemotionlistener / 鼠標(biāo)/x/ 坐標(biāo)的位置private int mousex=; / 上一

27、次 x 坐標(biāo)位置private int oldmousex=; / 鼠標(biāo) y 坐標(biāo)的位置private int mousey=; / 上一次 y 坐標(biāo)位置private int oldmousey=; / 畫圖顏色private color color=null; / 畫筆樣式private basicstroke stroke=null; / 緩存圖形private bufferedimage image=null;public palette() this.addmouselistener(this);this.addmousemotionlistener(this); / 默認(rèn)黑色畫筆c

28、olor=new color(, , ); / 設(shè)置默認(rèn)畫筆樣式stroke=new basicstroke(f, basicstroke.cap_round,basicstroke.join_round); / 建立 128 * 124 的 rgb 緩存圖象image=new bufferedimage(128, 124, bufferedimage.type_int_rgb); / 設(shè)置顏色image.getgraphics().setcolor(color.white); / 畫背景image.getgraphics().fillrect(, , 128, 124);public voi

29、d paint(graphics g) super.paint(g); / 轉(zhuǎn)換為 graphics2dgraphics2d g2d=(graphics2d) g; / 獲取緩存圖形 graphics2dgraphics2d bg=image.creategraphics(); / 圖形抗鋸齒bg.setrenderinghint(renderinghints.key_antialiasing,renderinghints.value_antialias_on); / 設(shè)置繪圖顏色bg.setcolor(color); / 設(shè)置畫筆樣式bg.setstroke(stroke); / 畫線,從上

30、一個(gè)點(diǎn)到新的點(diǎn)bg.drawline(oldmousex, oldmousey, mousex, mousey); / 將緩存中的圖形畫到畫板上g2d.drawimage(image, , , this);public void update(graphics g) this.paint(g);public basicstroke getstroke() return stroke;public void setstroke(basicstroke stroke) this.stroke=stroke;public void setstroke(float width) this.stroke

31、=new basicstroke(width, stroke.getendcap(), stroke.getlinejoin();public void setstroke(int cap) this.stroke=new basicstroke(stroke.getlinewidth(), cap, stroke.getlinejoin();public color getcolor() return color;public void setcolor(color color) this.color=color;public void mouseclicked(mouseevent mou

32、seevent) public void mousepressed(mouseevent mouseevent) this.oldmousex=this.mousex=mouseevent.getx();this.oldmousey=this.mousey=mouseevent.gety();repaint();public void mousereleased(mouseevent mouseevent) public void mouseentered(mouseevent mouseevent) this.setcursor(new cursor(cursor.crosshair_cur

33、sor);public void mouseexited(mouseevent mouseevent) this.setcursor(new cursor(cursor.default_cursor);public void mousedragged(mouseevent mouseevent) this.oldmousex=this.mousex;this.oldmousey=this.mousey;this.mousex=mouseevent.getx();this.mousey=mouseevent.gety();repaint();public void mousemoved(mouseevent mouseevent) 參考文獻(xiàn)java語(yǔ)言程序設(shè)計(jì).清華大學(xué)出版社.丁振凡主編設(shè)計(jì)總結(jié)經(jīng)過(guò)一個(gè)學(xué)期的java學(xué)習(xí),對(duì)java編程有了一定的認(rèn)識(shí),在做這個(gè)課程設(shè)計(jì)的時(shí)候,剛開(kāi)始感覺(jué)自己無(wú)從

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論