軟件工程JAVA課程設(shè)計報告_第1頁
軟件工程JAVA課程設(shè)計報告_第2頁
軟件工程JAVA課程設(shè)計報告_第3頁
軟件工程JAVA課程設(shè)計報告_第4頁
軟件工程JAVA課程設(shè)計報告_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、西安科技大學(xué)軟件工程課程設(shè)計報告題目:畫圖板應(yīng)用程序開發(fā)班級 學(xué)號: 姓名: 2010年12月目 錄1 緒論32 可行性研究報告33 需求分析報告44 總體設(shè)計報告75 詳細(xì)設(shè)計報告86 系統(tǒng)實(shí)現(xiàn)報告127軟件測試報告32參考文獻(xiàn)1、緒論 11 目的和意義用過微軟Windows操作系統(tǒng)的人一定都對Windows自帶的畫圖板非常熟悉了。同圖像處理軟件界的老大Photoshop比起來,它雖然不及Photoshop的功能強(qiáng)大,內(nèi)容豐富,但是作為Windows一直以來都內(nèi)帶的附件程序,它具有小巧玲瓏,簡單實(shí)用等其他繪圖軟件所不具備的優(yōu)點(diǎn)。同時它的風(fēng)格也被許多其他的繪圖軟件所仿效。作為一個軟件工程專業(yè)的

2、學(xué)生自己也想親自動手編寫一個屬于自己的,簡單實(shí)用的繪圖程序。通過本次課程設(shè)計可以增加對整個流程的熟悉以及對程序組織結(jié)構(gòu)和框架的理解,對以后開發(fā)和設(shè)計更大更復(fù)雜的程序無疑有更大的幫助。1.2 任務(wù)書寫開發(fā)文檔,分析和制定整個開發(fā)過程,然后開發(fā)一個自己的畫圖板應(yīng)用程序。2、可行性研究報告2.1 進(jìn)行可行性研究的方法本應(yīng)用程序可行性研究是通過對比windows自帶的畫板程序的方式進(jìn)行的,對Windows里面的畫板進(jìn)行分析研究,分析得出本應(yīng)用軟件應(yīng)該實(shí)現(xiàn)的基本功能,并根據(jù)自己的能力進(jìn)行了功能上的增加。2.2 評價尺度本軟件在評價時應(yīng)從以下幾個方面進(jìn)行分析:開發(fā)時間應(yīng)盡量短;功能實(shí)現(xiàn)的代碼應(yīng)盡量少;代碼

3、執(zhí)行效率要高;有較強(qiáng)的容錯能力;2.3技術(shù)方面的可行性 系統(tǒng)現(xiàn)階段的發(fā)展過程中,利用現(xiàn)有人力和物力是完全具備的能力開發(fā)出來的,作為階段性產(chǎn)品,日后的發(fā)展空間大,實(shí)現(xiàn)方法逐步簡單容易,所以畫圖板應(yīng)用程序在技術(shù)上是完全可行的。a 在當(dāng)前的限制條件下,該程序的功能目標(biāo)能達(dá)到;b 利用現(xiàn)有的技術(shù),該程序的功能可以實(shí)現(xiàn);c 由于能力的不足,現(xiàn)階段的功能不夠完美,還可以在日后完善;d 在規(guī)定的限期內(nèi),本程序能夠完成;2.4法律方面的可行性本程序不會在后臺掃描用戶的磁盤文件;本程序?yàn)橥耆赓M(fèi),沒有任何盈利行為,而且僅在內(nèi)部流通,不予推廣,所以不涉及浸犯微軟版權(quán)的行為,所以本軟件完全合法。軟件服務(wù)條款要與中華

4、人民共和國的法律解釋相一致,一致同意服從高等法院所有管轄。如發(fā)生軟件服務(wù)條款與中華人民共和國法律相抵觸時,則這些條款將完全按法律規(guī)定重新解釋,而其它條款則依舊保持對用戶產(chǎn)生法律效力和影響。2.3 經(jīng)濟(jì)可行行本系統(tǒng)開發(fā)成本低,不需要特殊要求。2.4 可行性結(jié)論綜上所述,本應(yīng)用程序在技術(shù)上可行,經(jīng)濟(jì)上可行,操作上可行,因此本應(yīng)用程序可立即著手開發(fā)。3、需求分析報告對軟件需求完全理解對于軟件開發(fā)工作的成功是至關(guān)重要的,需求說明的任務(wù)是發(fā)現(xiàn)、規(guī)范的過程,有益于提高軟件開發(fā)過程中的能見度,便于對軟件開發(fā)過程中的控制與管理,便于采用工程方法開發(fā)軟件,提高軟件的質(zhì)量,便于開發(fā)人員、維護(hù)人員、管理人員之間的交

5、流、協(xié)作,并作為工作成果的原始依據(jù),并且在向潛在用戶傳遞軟件功能、性能需求,使其能夠判斷該軟件是否與自己的需求相關(guān)。3.1 編寫目的為開發(fā)人員,維護(hù)人員,客戶之間提供共同的協(xié)議而創(chuàng)立基礎(chǔ),對本畫圖板軟件功能的實(shí)現(xiàn)做一全面的描述;本說明書預(yù)期讀者為客戶、業(yè)務(wù)或需求分析人員、測試人員、文檔編寫者、項(xiàng)目管理人員;3.2 任務(wù)概述 本軟件進(jìn)攻學(xué)習(xí)、研究之用,目標(biāo)是讓使用該軟件的用戶感覺能夠輕松的掌握本軟件的各個功能模塊。為了方便用戶使用,本軟件在設(shè)計時盡量追求可操作性和簡潔大方的人機(jī)交互界面的設(shè)計,力求盡量減少用戶直接輸入性的東西,大量使用可選框。3.3 功能概述通過各方面的了解,本軟件初步設(shè)計的功能

6、為:1 新建一個空白圖形文件:用于繪制新的圖形。2 打開或保存一個圖形文件,便于對圖形文件的管理。3 繪制一些基本的圖形組件:直線,矩形,實(shí)心矩形,橢圓,實(shí)心橢圓,圓,實(shí)心圓,圓角矩形,實(shí)心圓角矩形等。4 用鼠標(biāo)在繪圖板上單擊拖動進(jìn)行隨筆花。5 橡皮擦:可以將已繪制的圖形擦掉。6 添加文字:可以在繪圖區(qū)域內(nèi)添加文字。7 選擇文字的字體:通過一個下拉式的選擇條,可以選中所需要的字體。本程序中包括:宋體,隸書,華文彩云,仿宋-GB2312,華文行楷,Times New Roman,Serif,Monospaced,SonsSerif,Garamond。當(dāng)然,在下面的程序分析中可以看到,由于設(shè)置了字

7、體選擇數(shù)組,使得可以隨意添加系統(tǒng)支持的任何字體。大大方便和簡化了程序設(shè)計。8 選擇文字的字體風(fēng)格:通過兩個復(fù)選框按鈕,可以選擇需要的字體風(fēng)格,包括:粗體,斜體,用同時選中兩者,只選擇其中一種或兩者都不選中3種選擇方式。9 設(shè)置畫筆的顏色:可以選擇當(dāng)前繪制圖形的畫筆顏色,讓圖形更加豐富多彩,生動活潑。10. 設(shè)置畫筆的粗細(xì):該選項(xiàng)在作用于基本圖形組件和文字時,它的效果是不同的。當(dāng)作用于繪制圖形組建時,它的作用是改變畫筆繪制線條的粗細(xì);當(dāng)作用于文字時,它的作用是改變文字的大小。 由此可以看出,雖然這個畫圖板程序不如那些專業(yè)的繪圖程序,但是,“麻雀雖小五臟俱全”,它已經(jīng)具備了一個繪圖軟件所應(yīng)該有的基

8、本功能和操作。3.4 功能結(jié)構(gòu)圖圖3-1 軟件功能層次圖3.5 用例圖用例圖4、總體設(shè)計報告4.1 編寫目的總體設(shè)計的目的就是回答“概括的說,系統(tǒng)該如何實(shí)現(xiàn)?”這個問題,也就是說這個說明書的編寫目的就是告訴程序員和軟件設(shè)計人員本軟件的系統(tǒng)結(jié)構(gòu)和軟件結(jié)構(gòu)。4.2 本軟件的系統(tǒng)層次結(jié)構(gòu)圖圖3-1 是該軟件的系統(tǒng)層次結(jié)構(gòu)圖。4.3 基本圖形按鈕基本圖形按鈕包括:Pencil(隨筆畫)、Line(直線)、Rect(矩形)、fRect(實(shí)心矩形)、Oval(橢圓)、fOval(實(shí)心橢圓)、Circle(圓)、fCircle(實(shí)心圓)、RoundRect(圓角矩形)、frrect(實(shí)心圓角矩形)、Rubb

9、er(橡皮擦)、Word(字)。基本圖形都繼承自同一個父類:drawings。Drawings具有的變量(屬性):int x1, y1, x2, y2; /用來存放相應(yīng)圖形元素的左邊int R, G, B; /用來存放圖形色彩信息float stroke; /用來存放畫筆粗細(xì)int type; /用來保存圖形類型string s1; /用來保存輸入文字字符串string s2; /用來保存字體類型字符串同時,drawings還有方法:Void draw(Graphics2D g2d) ;draw()方法中用到了java繪圖里面的Graphics2D類,所有繼承drawings類的圖形子類都重寫

10、此方法。這就是Java中類繼承的概念。4.4 基本操作按鈕1. New:新建一個圖形文件。2. Open:打開一個圖形文件。3. Save:保存當(dāng)前圖形文件。4.5 菜單條及其組成1. File菜單項(xiàng),包括:New(新建一個圖形文件)、Load(打開一個圖形文件)、Save(保存一個圖形文件)、Exit(退出程序)。2. Color菜單項(xiàng):用來設(shè)置當(dāng)前顏色。3. Stroke菜單項(xiàng):用來設(shè)置當(dāng)前畫筆粗細(xì)。4. Help菜單項(xiàng):有關(guān)的程序幫助提示。4.6 其他功能組成1. 選擇顏色和設(shè)置當(dāng)前畫筆粗細(xì)的按鈕分別為:Color、Stroke。2. 選擇當(dāng)前字體風(fēng)格的選擇框?yàn)椋築OLD、ITALIC,

11、用以設(shè)置當(dāng)前字體的風(fēng)格。3. 選擇當(dāng)前字體的下來是復(fù)選框?yàn)椋篠tyles。4.7 完成的程序界面效果為:圖4-1 完成的程序界面效果圖5、詳細(xì)設(shè)計報告5.1 編寫目的詳細(xì)設(shè)計階段的根本目的是確定應(yīng)該怎么具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個階段的設(shè)計工作,應(yīng)該得出對目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種設(shè)計語言書寫的程序。本說明書是為了給程序員提供出一個程序的“藍(lán)圖”,指導(dǎo)他們更好地完成編碼任務(wù)。本說明書的讀者是:軟件設(shè)計師、所有參與這個項(xiàng)目的編碼人員和測試人員。5.2 新建一個圖形文件單擊工具欄上的圖標(biāo),或選擇File New菜單,則清除當(dāng)前所繪制的圖像,回到初

12、始畫面,如圖4-1所示。5.3 打開已有的文件單擊工具欄上的圖標(biāo),或選擇FileLoad菜單,則清除當(dāng)前所繪制的圖像,并彈出打開文件對話框要求選擇打開的文件,如圖5-1所示。圖5-1 選擇打開文件對話框5.4 保存單擊工具欄上的圖標(biāo),或者選擇FileSave菜單,則彈出要求保存文件對話框,如圖5-2所示。 圖5-2 保存文件對話框5.5 繪制基本圖形基本圖形包括:1. Pencil:隨筆畫,圖標(biāo)為。2. Line:直線,圖標(biāo)為。3. Rect:矩形,圖標(biāo)為。4. fRect:實(shí)心矩形,圖標(biāo)為。5. Oval:橢圓,圖標(biāo)為。6. fOval:實(shí)心橢圓,圖標(biāo)為。7. Circle:圓,圖標(biāo)為。8.

13、 Fcircle:實(shí)心圓,圖標(biāo)為。9. RoundRect:圓角矩形,圖標(biāo)為。10. frRect:實(shí)心圓角矩形,圖標(biāo)為。11. Rubber:橡皮擦,圖標(biāo)為。畫圖時,單擊工具欄上相應(yīng)圖形的圖標(biāo),然后用鼠標(biāo)拖動,在繪圖區(qū)域內(nèi)進(jìn)行繪畫即可。5.6 設(shè)置畫筆大小單擊工具欄上的圖標(biāo),或者單擊StrokeSet Stroke菜單,則彈出相應(yīng)的設(shè)置當(dāng)前畫筆粗細(xì)對話框,如圖5-3所示。 圖5-3 設(shè)置當(dāng)前畫筆粗細(xì)對話框5.7 選擇顏色 單擊工具欄上的圖標(biāo),或單擊ColorChoose Color菜單,則彈出相應(yīng)的選擇當(dāng)前畫圖顏色對話框,如圖5-4所示。圖5-4 選擇顏色對話框5.8 選擇字體風(fēng)格在工具欄區(qū)

14、域,可以選擇相應(yīng)的字體風(fēng)格,有粗體和斜體兩種風(fēng)格可供選擇。5.9選擇字體 在工具欄區(qū)域,可以選擇字體,本程序中有如下幾種字體可供選擇:宋體,隸書,華文彩云,仿宋-GB2312,華文行楷,Times New Roman,Serif,Monospaced,SonsSerif,Garamond。5.10 程序結(jié)構(gòu)說明本程序主體文件為一個文件:MiniDrawPad.Java。其中包括的程序段有:1. MiniDrawPad():構(gòu)造函數(shù),用以初始化。2. chooseColor():選擇當(dāng)前繪圖顏色程序段。3. setStroke():設(shè)置當(dāng)前畫筆粗細(xì)程序段。4. loadFile():調(diào)用圖形文件

15、程序段。5. newFile():新建一個圖形文件程序段。6. saveFile():保存當(dāng)前所繪制圖形程序段。7. createNewItem():新建一個基本圖形單元程序段。相應(yīng)的內(nèi)部類有:1. ButtonHandler:用來處理基本圖形單元的按鈕事件。2. ButtonHandler1:用來處理New、Open、Save三個操作按鈕的按鈕事件。3. DrawPanel:用老創(chuàng)建繪圖區(qū)域的子類。4. MouseA:繼承了MouseAdapter,用來完成鼠標(biāo)相應(yīng)事件的操作,如單擊、松開、進(jìn)入和離開等。5. MouseB:繼承了MouseMotionAdapter,用來完成鼠標(biāo)拖動和鼠標(biāo)移

16、動時的相應(yīng)操作。6、系統(tǒng)實(shí)現(xiàn)報告6.1 開發(fā)環(huán)境CPU:Intel Core(TM)2 E5300 內(nèi)存:2G運(yùn)行平臺:Windows XP 主頻:2.60GHz 開發(fā)平臺:Eclipse 主板:ASUSTeK Computer INC. P5QL-ASUS-SE6.2 關(guān)鍵技術(shù)本軟件的關(guān)鍵技術(shù)有主窗體的設(shè)計、菜單欄和工具欄的設(shè)計、事件響應(yīng)的處理、畫圖的基本功能的實(shí)現(xiàn)。6.3 運(yùn)行結(jié)果1. 主界面框架主界面類繼承自JFrame類,包括構(gòu)造函數(shù)及各種功能的定義,主要代碼如下 :import java.awt.*;import java.awt.geom.*;import java.awt.eve

17、nt.*;import javax.swing.*;import java.io.*;import java.util.*;public class MiniDrawPad extends JFrame /主類,擴(kuò)展了JFrame類,用來生成主界面 private ObjectInputStream input; private ObjectOutputStream output; /定義輸入輸出流,用來調(diào)用和保存圖像文件 private JButton choices; /按鈕數(shù)組,存放以下名稱的功能按鈕 private String names= New, Open, Save, /這三個

18、是基本操作按鈕,包括新建、打開、保存 Pencil,/鉛筆畫,也就是用鼠標(biāo)拖動著隨意繪圖 Line,/繪制直線 Rect,/繪制空心矩形 fRect,/繪制以指定顏色填充的實(shí)心矩形 Oval,/繪制空心橢圓 fOval,/繪制以指定顏色填充的實(shí)心橢圓 Circle,/繪制圓形 fCircle,/繪制以指定顏色填充的實(shí)心圓形 RoundRect,/繪制空心圓角矩形 frRect,/繪制以指定顏色填充的實(shí)心圓角矩形 Rubber,/橡皮擦,可用來擦去已經(jīng)繪制好的圖案 Color,/選擇顏色按鈕,可用來選擇需要的顏色 Stroke,/選擇線條粗細(xì)的按鈕,輸入需要的數(shù)值可以實(shí)現(xiàn)繪圖線條粗細(xì)的變化 Wo

19、rd/輸入文字按鈕,可以在繪圖板上實(shí)現(xiàn)文字輸入 ; private String styleNames= 宋體 , 隸書 , 華文彩云 , 仿宋_GB2312 , 華文行楷 , 方正舒體 , Times New Roman , Serif , Monospaced , SonsSerif , Garamond ; /可供選擇的字體項(xiàng) private Icon items; private String tipText= /這里是鼠標(biāo)移動到相應(yīng)按鈕上面上停留時給出的提示說明條 Draw a new picture, Open a saved picture, Save current drawi

20、ng, Draw at will, Draw a straight line, Draw a rectangle, Fill a ractangle, Draw an oval, Fill an oval, Draw a circle, Fill a circle, Draw a round rectangle, Fill a round rectangle, Erase at will, Choose current drawing color, Set current drawing stroke, Write down what u want ; JToolBar buttonPanel

21、 ; /定義按鈕面板 private JLabel statusBar; /顯示鼠標(biāo)狀態(tài)的提示條 private DrawPanel drawingArea; /畫圖區(qū)域 private int width=800,height=550; /定義畫圖區(qū)域初始大小 drawings itemList=new drawings5000; /用來存放基本圖形的數(shù)組 private int currentChoice=3; /設(shè)置默認(rèn)畫圖狀態(tài)為隨筆畫 int index=0; /當(dāng)前已經(jīng)繪制的圖形數(shù)目 private Color color=Color.black; /當(dāng)前畫筆顏色 int R,G,B

22、; /用來存放當(dāng)前色彩值 int f1,f2; /用來存放當(dāng)前字體風(fēng)格 String style1; /用來存放當(dāng)前字體 private float stroke=1.0f; /設(shè)置畫筆粗細(xì),默認(rèn)值為1.0f JCheckBox bold,italic; /定義字體風(fēng)格選擇框 /bold為粗體,italic為斜體,二者可以同時使用 JComboBox styles; public MiniDrawPad() /構(gòu)造函數(shù) super(Drawing Pad); JMenuBar bar=new JMenuBar();/定義菜單條 JMenu fileMenu=new JMenu(File); f

23、ileMenu.setMnemonic(F);2. 新建、保存、打開、退出菜單項(xiàng)代碼如下:/新建文件菜單條 JMenuItem newItem=new JMenuItem(New); newItem.setMnemonic(N); newItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) newFile();/如果被觸發(fā),則調(diào)用新建文件函數(shù)段 ); fileMenu.add(newItem);/保存文件菜單項(xiàng) JMenuItem saveItem=new JMenuIte

24、m(Save); saveItem.setMnemonic(S); saveItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) saveFile();/如果被觸發(fā),則調(diào)用保存文件函數(shù)段 ); fileMenu.add(saveItem);/打開文件菜單項(xiàng) JMenuItem loadItem=new JMenuItem(Load); loadItem.setMnemonic(L); loadItem.addActionListener( new ActionListene

25、r() public void actionPerformed(ActionEvent e) loadFile();/如果被觸發(fā),則調(diào)用打開文件函數(shù)段 ); fileMenu.add(loadItem); fileMenu.addSeparator();/退出菜單項(xiàng) JMenuItem exitItem=new JMenuItem(Exit); exitItem.setMnemonic(X); exitItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) System.ex

26、it(0);/如果被觸發(fā),則退出畫圖板程序 ); fileMenu.add(exitItem); bar.add(fileMenu);3. 線條寬度、顏色、提示功能代碼如下:/設(shè)置顏色菜單條 JMenu colorMenu=new JMenu(Color); colorMenu.setMnemonic(C);/選擇顏色菜單項(xiàng) JMenuItem colorItem=new JMenuItem(Choose Color); colorItem.setMnemonic(O); colorItem.addActionListener( new ActionListener() public void

27、 actionPerformed(ActionEvent e) chooseColor();/如果被觸發(fā),則調(diào)用選擇顏色函數(shù)段 ); colorMenu.add(colorItem); bar.add(colorMenu);/設(shè)置線條粗細(xì)菜單條 JMenu strokeMenu=new JMenu(Stroke); strokeMenu.setMnemonic(S);/設(shè)置線條粗細(xì)菜單項(xiàng) JMenuItem strokeItem=new JMenuItem(Set Stroke); strokeItem.setMnemonic(K); strokeItem.addActionListener(

28、 new ActionListener() public void actionPerformed(ActionEvent e) setStroke(); ); strokeMenu.add(strokeItem); bar.add(strokeMenu);/設(shè)置提示菜單條 JMenu helpMenu=new JMenu(Help); helpMenu.setMnemonic(H);/設(shè)置提示菜單項(xiàng) JMenuItem aboutItem=new JMenuItem(About this Drawing Pad!); aboutItem.setMnemonic(A); aboutItem.a

29、ddActionListener( new ActionListener() public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(null, This is a mini drawing pad!nBy Jian Yongkang , 畫圖板程序說明 ,JOptionPane.INFORMATION_MESSAGE ); ); helpMenu.add(aboutItem); bar.add(helpMenu); items=new ImageIconnames.length;4. 工具欄圖形按鈕功能

30、實(shí)現(xiàn) 創(chuàng)建基本圖形按鈕、導(dǎo)入圖標(biāo)、加入動作偵聽器、字體風(fēng)格選擇、字體選擇、畫圖板等功能的實(shí)現(xiàn)。代碼如下:/創(chuàng)建各種基本圖形的按鈕 drawingArea=new DrawPanel(); choices=new JButtonnames.length; buttonPanel = new JToolBar( JToolBar.VERTICAL ) ; buttonPanel = new JToolBar( JToolBar.HORIZONTAL) ; ButtonHandler handler=new ButtonHandler(); ButtonHandler1 handler1=new B

31、uttonHandler1();/導(dǎo)入圖形圖標(biāo),這些圖標(biāo)都存放在與源文件相同的目錄下面 for(int i=0;ichoices.length;i+) itemsi=new ImageIcon(namesi + .jpg); choicesi=new JButton(,itemsi); choicesi.setToolTipText(tipTexti); buttonPanel.add(choicesi); /將動作偵聽器加入按鈕里面 for(int i=3;ichoices.length-3;i+) choicesi.addActionListener(handler); choices0.

32、addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) newFile(); ); choices1.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) loadFile(); ); choices2.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) save

33、File(); ); choiceschoices.length-3.addActionListener(handler1); choiceschoices.length-2.addActionListener(handler1); choiceschoices.length-1.addActionListener(handler1);/字體風(fēng)格選擇 styles=new JComboBox(styleNames); styles.setMaximumRowCount(8); styles.addItemListener( new ItemListener() public void item

34、StateChanged(ItemEvent e) style1=styleNamesstyles.getSelectedIndex(); );/字體選擇 bold=new JCheckBox(BOLD); italic=new JCheckBox(ITALIC); checkBoxHandler cHandler=new checkBoxHandler(); bold.addItemListener(cHandler); italic.addItemListener(cHandler); JPanel wordPanel=new JPanel(); buttonPanel.add(bold)

35、; buttonPanel.add(italic); buttonPanel.add(styles); styles.setMinimumSize( new Dimension ( 50, 20 ) ); styles.setMaximumSize(new Dimension ( 100, 20 ) ); Container c=getContentPane(); super.setJMenuBar( bar ); c.add(buttonPanel,BorderLayout.NORTH); c.add(drawingArea,BorderLayout.CENTER); statusBar=n

36、ew JLabel(); c.add(statusBar,BorderLayout.SOUTH); statusBar.setText( Welcome To The Little Drawing Pad! :); createNewItem(); setSize(width,height); show(); /按鈕偵聽器ButtonHanler類,內(nèi)部類,用來偵聽基本按鈕的操作public class ButtonHandler implements ActionListener public void actionPerformed(ActionEvent e) for(int j=3;j

37、choices.length-3;j+) if(e.getSource()=choicesj) currentChoice=j; createNewItem(); repaint(); /按鈕偵聽器ButtonHanler1類,用來偵聽顏色選擇、畫筆粗細(xì)設(shè)置、文字輸入按鈕的操作public class ButtonHandler1 implements ActionListener public void actionPerformed(ActionEvent e) if(e.getSource()=choiceschoices.length-3) chooseColor(); if(e.ge

38、tSource()=choiceschoices.length-2) setStroke(); if(e.getSource()=choiceschoices.length-1) JOptionPane.showMessageDialog(null, Please hit the drawing pad to choose the word input position, Hint,JOptionPane.INFORMATION_MESSAGE ); currentChoice=14; createNewItem(); repaint(); /鼠標(biāo)事件mouseA類,繼承了MouseAdapt

39、er,用來完成鼠標(biāo)相應(yīng)事件操作 class mouseA extends MouseAdapter public void mousePressed(MouseEvent e) statusBar.setText( Mouse Pressed : + e.getX() + , + e.getY() + );/設(shè)置狀態(tài)提示 itemListindex.x1=itemListindex.x2=e.getX(); itemListindex.y1=itemListindex.y2=e.getY(); /如果當(dāng)前選擇的圖形是隨筆畫或者橡皮擦,則進(jìn)行下面的操作 if(currentChoice=3|cu

40、rrentChoice=13) itemListindex.x1=itemListindex.x2=e.getX(); itemListindex.y1=itemListindex.y2=e.getY(); index+; createNewItem(); /如果當(dāng)前選擇的圖形式文字輸入,則進(jìn)行下面操作 if(currentChoice=14) itemListindex.x1=e.getX(); itemListindex.y1=e.getY(); String input; input=JOptionPane.showInputDialog( Please input the text y

41、ou want!); itemListindex.s1=input; itemListindex.x2=f1; itemListindex.y2=f2; itemListindex.s2=style1; index+; currentChoice=14; createNewItem(); drawingArea.repaint(); public void mouseReleased(MouseEvent e) statusBar.setText( Mouse Released : + e.getX() + , + e.getY() + ); if(currentChoice=3|curren

42、tChoice=13) itemListindex.x1=e.getX(); itemListindex.y1=e.getY(); itemListindex.x2=e.getX(); itemListindex.y2=e.getY(); repaint(); index+; createNewItem(); public void mouseEntered(MouseEvent e) statusBar.setText( Mouse Entered : + e.getX() + , + e.getY() + ); public void mouseExited(MouseEvent e) s

43、tatusBar.setText( Mouse Exited : + e.getX() + , + e.getY() + ); class mouseB extends MouseMotionAdapter public void mouseDragged(MouseEvent e) statusBar.setText( Mouse Dragged : + e.getX() +, + e.getY() + ); if(currentChoice=3|currentChoice=13) itemListindex-1.x1=itemListindex.x2=itemListindex.x1=e.getX(); itemListindex-1.y1=itemListindex.y2=itemListindex.y1=e.getY(); index+; createNewItem(); else itemListindex.x2=e.getX(); itemListindex.y2=e.getY(); repaint(); pu

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論