java畫圖程序技術(shù)小結(jié)(一) 程序結(jié)構(gòu)問題
這個(gè)軟件是我大二時(shí)的圖形學(xué)課程設(shè)計(jì),是個(gè)矢量圖形的繪制軟件。發(fā)來給初學(xué)者參考。主要功能:
實(shí)現(xiàn)點(diǎn)、線段、折線、圓、橢圓、矩形、圓弧、多邊形、填充圖形、字符串等的定義和交互繪制。
實(shí)現(xiàn)線型、線寬、顏色的選擇。
實(shí)現(xiàn)畫布的定義及保存。
程序結(jié)構(gòu):
程序的主要功能均由類PaintPanel完成,該類繼承自JtextArea。(用它是為了實(shí)現(xiàn)畫布的大小調(diào)整的滾動(dòng)條,以后介紹)
PaintPanel中主要成員:
ArrayList shape 保存當(dāng)前畫布上的圖形對(duì)象
ArrayList undo 保存用于撤消操作的圖形對(duì)象
Color bgCol 背景顏色
BufferedImage offScreenImg 后臺(tái)圖象
Graphics2D offScreenG 后臺(tái)Graphics對(duì)象
Clipboard cb; 剪切板(由系統(tǒng)剪切板實(shí)例化)
程序中定義接口:CusShape,主要有一些操作圖形的基本方法,比如,繪制,位置控制,顏色控制(具體可看代碼)
其他圖形均繼承java.awt中的對(duì)應(yīng)的類(主要是使用其中的交叉判斷函數(shù)intersects,用于圖形的鼠標(biāo)選?。?,并實(shí)現(xiàn)Serializable,CusShape。
圖形在程序中都以接口CusShape形式出現(xiàn),以畫的圖形存儲(chǔ)在ArrayList中。
我是通過這個(gè)軟件的設(shè)計(jì)才明白多態(tài)的,以前都是理論上的,經(jīng)過實(shí)踐才知道面向?qū)ο蟮暮锰?。這個(gè)軟件編寫的時(shí)候我對(duì)java還不是很了解,所以有的結(jié)構(gòu)不是很合理,寫出來就是給初學(xué)者做個(gè)參考,看到有很多同學(xué)都在找畫圖板的設(shè)計(jì),我會(huì)給出程序和簡(jiǎn)單的設(shè)計(jì)文檔。
posted on 2007-04-23 10:11 Rex Mao 閱讀(3936) 評(píng)論(4) 編輯 收藏 所屬分類: 技術(shù)