版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> Java課程設(shè)計(jì)</b></p><p><b> 課程名稱:畫筆系統(tǒng)</b></p><p><b> 目錄</b></p><p> 一.設(shè)計(jì)題目----------------------------------------------------------
2、----------2</p><p> 1.1設(shè)計(jì)題目與要求---------------------------------------------------------------------------2</p><p> 1.2設(shè)計(jì)要求----------------------------------------------------------------------
3、--------------2</p><p> 二.需求分析--------------------------------------------------------------------2</p><p> 三.概要設(shè)計(jì)--------------------------------------------------------------------3</p>
4、;<p> 3.1設(shè)計(jì)準(zhǔn)備------------------------------------------------------------------------------------3</p><p> 3.2需用的類------------------------------------------------------------------------------------
5、3</p><p> 四.詳細(xì)設(shè)計(jì)--------------------------------------------------------------------3</p><p> 4.1類的設(shè)計(jì)------------------------------------------------------------------------------------3</p
6、><p> 4.2類的方法介紹------------------------------------------------------------------------------4</p><p> 4.3測(cè)試數(shù)據(jù)及運(yùn)行結(jié)果---------------------------------------------------------------------5</p>
7、<p> 五.源程序-----------------------------------------------------------------------6</p><p> 六.課程設(shè)計(jì)總結(jié)-------------------------------------------------------------15</p><p> 七.參考文獻(xiàn)-------
8、------------------------------------------------------------15</p><p><b> 設(shè)計(jì)題目</b></p><p> 1.1 設(shè)計(jì)題目與要求</p><p> 本次課程設(shè)計(jì)主要是用JAVA實(shí)現(xiàn)畫筆系統(tǒng),其系統(tǒng)主要完成以下功能:設(shè)計(jì)一個(gè)畫圖程序,能夠?qū)崿F(xiàn)畫筆、畫直線、畫圓
9、形、畫矩形的功能,并且在繪圖。過程中能夠修改該畫筆的大小以及顏色。該畫圖程序還需具有橡皮擦功能以及清空整個(gè)畫面的功能</p><p><b> 1.2 設(shè)計(jì)目的</b></p><p> 本次課程設(shè)計(jì)是配合JAVA程序設(shè)計(jì)課程,幫助我們深入學(xué)習(xí)掌握J(rèn)AVA語(yǔ)言,熟練運(yùn)用這個(gè)工具來(lái)編寫的。通過課程設(shè)計(jì)各個(gè)項(xiàng)目的綜合訓(xùn)練,培養(yǎng)學(xué)生實(shí)際分析問題、編程和動(dòng)手能力、提高學(xué)生
10、的綜合素質(zhì)。本課程設(shè)計(jì)嘗試使用一些較生動(dòng)的示例和設(shè)計(jì)項(xiàng)目,激發(fā)學(xué)生學(xué)習(xí)興趣,引導(dǎo)學(xué)生主動(dòng)學(xué)習(xí),正確理解、接受需要重點(diǎn)掌握的知識(shí)點(diǎn),為參加項(xiàng)目開發(fā)及更深入學(xué)習(xí)做好準(zhǔn)備。</p><p><b> 二、需求分析</b></p><p> 設(shè)計(jì)一個(gè)畫圖程序,能夠?qū)崿F(xiàn)畫筆、畫直線、畫圓形、畫矩形的功能,并且在繪圖。過程中能夠修改該畫筆的大小以及顏色。該畫圖程序還需具有橡皮
11、擦功能以及清空整個(gè)畫面的功能</p><p> 1、這個(gè)畫圖程序,最基本的功能是,作為一個(gè)畫筆,能利用它實(shí)現(xiàn)在屏幕上任意繪畫、書寫的功能;</p><p> 2、利用這個(gè)畫圖程序,通過選擇畫直線、畫圓形、畫矩形等功能選項(xiàng)并且在屏幕上拖動(dòng)鼠標(biāo)操作能實(shí)現(xiàn)畫出相應(yīng)圖形的功能;</p><p> 3、這個(gè)畫圖程序,還需具備橡皮擦的功能,利用這個(gè)橡皮擦能夠擦除屏幕上的圖
12、案,并且此橡皮擦也應(yīng)該能夠改變大?。?lt;/p><p> 4、這個(gè)畫圖程序,還應(yīng)該做到能夠改變畫筆顏色的功能;</p><p> 5、這個(gè)畫圖程序,還應(yīng)該具備能夠清除整個(gè)屏幕已繪制圖畫的功能。</p><p><b> 三、概要設(shè)計(jì)</b></p><p><b> 3.1設(shè)計(jì)準(zhǔn)備</b>&l
13、t;/p><p> 1、此程序?yàn)閷?shí)現(xiàn)這些功能模塊,必須首先定義一個(gè)工具面板,將這些畫筆、畫直線、畫圓形、畫矩形、畫筆顏色、畫筆大小、橡皮等功能組件放入這個(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ā)事件,故在此程序中,必須實(shí)現(xiàn)“委托事件模型”,用到事件源、事件對(duì)象以及監(jiān)聽者對(duì)象。&l
14、t;/p><p> 3、此程序中,必須用到的包如下:</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import java.util.*;</p><p> import javax.swing.*;</p>
15、;<p> import java.awt.geom.*;</p><p><b> 3.2需用到的類</b></p><p> 1 )class Point</p><p> 此類用于定義一組數(shù)據(jù)成員,并且使用構(gòu)造函數(shù)將他們分別初使化,以方便在下面的程序中使用他們。</p><p> 2)cla
16、ss paintboard </p><p> 此類用于實(shí)現(xiàn)這個(gè)程序的大部分功能,在這個(gè)類中除了定義一些基本變量以及構(gòu)造函數(shù)外,還定義了很多成員方法,這些成員方法將實(shí)現(xiàn)鼠標(biāo)觸發(fā)事件的一系列繪圖功能。</p><p> 3 )public class PaintBrush</p><p> 這個(gè)類是主類,是程序得以運(yùn)行的入口。在這個(gè)主類中定義了主方法,是該程序執(zhí)
17、行的入口。</p><p><b> 四.詳細(xì)設(shè)計(jì)</b></p><p><b> 4.1類的設(shè)計(jì)</b></p><p> 1) class Point</p><p> 在這個(gè)類中定義了用于截?cái)嗟囊幌盗袠?biāo)志變量,有初始坐標(biāo)、顏色、工具選擇等,并且在這個(gè)類中還定義了構(gòu)造函數(shù)Point(i
18、nt x, int y, Color col, int tool, int boarder),用于完成對(duì)這些變量的初始化工作。</p><p> 2)class paintboard </p><p> 這個(gè)類用來(lái)實(shí)現(xiàn)整個(gè)程序的大部分功能,并且在這個(gè)類中定義了大部分的成員函數(shù)和成員方法,在這個(gè)類中用到的主要成員方法如下:</p><p> Public voi
19、d paint(Graphics g)</p><p> public void itemStateChanged(ItemEvent e)</p><p> public void mouseDragged(MouseEvent e)</p><p> public void mousePressed(MouseEvent e)</p><
20、;p> public void mouseReleased(MouseEvent e)</p><p> public void mouseEntered(MouseEvent e){}</p><p> public void mouseExited(MouseEvent e){}</p><p> public void mouseClicked(
21、MouseEvent e){}</p><p> public void mouseMoved(MouseEvent e){} </p><p> public void actionPerformed(ActionEvent e)</p><p><b> 4.2類的方法介紹</b></p><p><b
22、> 定義的變量:</b></p><p> 在這個(gè)類中,首先定義了畫筆的大小、畫筆的顏色、畫筆的粗細(xì)、橡皮的大小、工具的選擇等一些變量,并且還用到了系統(tǒng)中自帶的一些類初使化了一些面板工具對(duì)象,用于完成對(duì)面板工具、畫直線、畫橢圓、畫矩形、橡皮擦、清除等一些工具按鈕的定義。</p><p><b> 初使化構(gòu)造函數(shù):</b></p>
23、<p> 在這個(gè)初使化構(gòu)造函數(shù)中,首先繼承了父類Frame,然后初使化了各工具按鈕以及各個(gè)選擇項(xiàng),包括顏色選擇、畫筆大小選擇、橡皮大小選擇,并且將這些組件添加到了工具面板中,最后還對(duì)各個(gè)組件注冊(cè)了事件監(jiān)聽者對(duì)象。</p><p> paint()方法:</p><p> 這個(gè)方法主要用于在Applet的界面中顯示文字、圖形和其它界面元素。本程序中,在這個(gè)方法中,定義了一些工
24、具選項(xiàng)設(shè)置,給用戶選擇畫筆、畫直線、畫圓、橡皮擦等一些功能。</p><p> itemStateChanged()方法:</p><p> 這個(gè)方法用來(lái)實(shí)現(xiàn)的功能很簡(jiǎn)單,主要是用來(lái)改變畫筆大小、畫筆顏色、橡皮大小的。在此方法中,設(shè)置了大小以及顏色的一些預(yù)選項(xiàng),以供用戶對(duì)大小以及顏色做出選擇。</p><p> mouseDragged()方法:</p&
25、gt;<p> 此方法是處理MouseEvent事件以實(shí)現(xiàn)MouseMotionListener接口的對(duì)象。MouseMotionListener是事件監(jiān)聽者,mouseDragged(MouseEvent e)是成員方法,代表鼠標(biāo)拖動(dòng)事件,在這個(gè)方法中,還用到了MouseEvent類常用成員方法:public int getX()以及public int getY(),用來(lái)返回發(fā)生鼠標(biāo)事件的X及Y的坐標(biāo)。這個(gè)方法中,主
26、要用來(lái)控件畫筆和橡皮的轉(zhuǎn)換。</p><p> mousePressed()方法:</p><p> 此方法是處理MouseEvent事件以實(shí)現(xiàn)MouseListener接口的對(duì)象。MouseListener是事件監(jiān)聽者,mouseDPressed(MouseEvent e)是成員方法,代表鼠標(biāo)按下事件。這個(gè)方法主要用來(lái)控件用戶畫直線、畫圓、畫矩形這些功能之間的轉(zhuǎn)換。</p>
27、;<p> ?、?mouseReleased()方法:</p><p> mouseEntered()方法:</p><p> mouseExited()方法:</p><p> mouseClicked()方法:</p><p> 這些方法和mousePressed()方法屬于同一類,他主要用來(lái)表示鼠標(biāo)釋放事件,是對(duì)上
28、述各個(gè)功能完成后對(duì)鼠標(biāo)事件的又一次觸發(fā)。</p><p> 4.3.測(cè)試數(shù)據(jù)及運(yùn)行結(jié)果</p><p> 1、畫筆在屏幕上繪畫</p><p><b> 2、改變畫筆的粗細(xì)</b></p><p> 3、畫直線、畫圓、畫矩形</p><p><b> 五.源程序</b&g
29、t;</p><p> /*PaintBrush.java,可調(diào)畫筆粗細(xì)-Java畫圖實(shí)驗(yàn)-swingcode -gcode</p><p> *畫直線,曲線,矩形,橢圓,可調(diào)顏色,有橡皮擦功能</p><p><b> *可調(diào)畫筆粗細(xì)</b></p><p><b> *hxz*/</b>
30、</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import java.util.*;</p><p> import javax.swing.*;</p><p> import java.awt.geom.*;
31、</p><p> class Point</p><p><b> {</b></p><p><b> int x,y;</b></p><p> Color col;</p><p><b> int tool;</b></p>
32、;<p> int boarder;</p><p> Point(int x, int y, Color col, int tool, int boarder)</p><p><b> {</b></p><p> this.x = x;</p><p> this.y = y;</p&
33、gt;<p> this.col = col;</p><p> this.tool = tool;</p><p> this.boarder = boarder;</p><p><b> }</b></p><p><b> }</b></p><p
34、><b> /*</b></p><p> *BasicStroke</p><p><b> *Choice</b></p><p> *validate();</p><p><b> **/</b></p><p> class
35、paintboard extends Frame implements ActionListener, MouseMotionListener, MouseListener, ItemListener</p><p><b> {</b></p><p> int xx0=0,yy0=0;</p><p> int xx1=0,yy1=0
36、;</p><p> int type=6;</p><p> int x = -1, y = -1;</p><p> int con = 1; //畫筆大小</p><p> int Econ = 5; //橡皮大小</p><p> int toolFlag = 0; /
37、/toolFlag:工具標(biāo)記</p><p> //toolFlag工具對(duì)應(yīng)表:</p><p> //(0--畫筆);(1--橡皮);(2--清除);</p><p> //(3--直線);(4--圓);(5--矩形);</p><p> Color c = new Color(0,0,0); //畫筆顏色</p>&
38、lt;p> BasicStroke size = new BasicStroke (con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);//畫筆粗細(xì)</p><p> Point cutflag = new Point(-1, -1, c, 6, con);//截?cái)鄻?biāo)志</p><p> Vector paintInfo = nul
39、l;//點(diǎn)信息向量組</p><p> int n = 1;</p><p> // *工具面板--畫筆,直線,圓,矩形,多邊形,橡皮,清除*/</p><p> Panel toolPanel;</p><p> Button eraser, drLine,drCircle,drRect;</p><p>
40、 Button clear ,pen;</p><p> Choice ColChoice,SizeChoice,EraserChoice;</p><p> Button colchooser;</p><p> Label 顏色,大小B,大小E;</p><p> paintboard(String s)//構(gòu)造函數(shù)</p&
41、gt;<p><b> {</b></p><p><b> super(s);</b></p><p> addMouseMotionListener(this);</p><p> addMouseListener(this);</p><p> paintInfo =
42、new Vector();</p><p> /*各工具按鈕及選擇項(xiàng)*/</p><p><b> //顏色選擇</b></p><p> ColChoice = new Choice();</p><p> ColChoice.add("黑色");</p><p>
43、 ColChoice.add("紅色");</p><p> ColChoice.add("藍(lán)色");</p><p> ColChoice.add("綠色");</p><p> ColChoice.addItemListener(this);</p><p><b&g
44、t; //畫筆大小選擇</b></p><p> SizeChoice = new Choice();</p><p> SizeChoice.add("1");</p><p> SizeChoice.add("3");</p><p> SizeChoice.add("
45、;5");</p><p> SizeChoice.add("7");</p><p> SizeChoice.add("9");</p><p> SizeChoice.addItemListener(this);</p><p><b> //橡皮大小選擇</b&g
46、t;</p><p> EraserChoice = new Choice();</p><p> EraserChoice.add("2");</p><p> EraserChoice.add("3");</p><p> EraserChoice.add("4");&l
47、t;/p><p> EraserChoice.add("5");</p><p> EraserChoice.addItemListener(this);</p><p> toolPanel = new Panel();</p><p> clear = new Button("清除");<
48、/p><p> eraser = new Button("橡皮");</p><p> pen = new Button("畫筆");</p><p> drLine = new Button("畫直線");</p><p> drCircle = new Button(&quo
49、t;畫圓形");</p><p> drRect = new Button("畫矩形");</p><p> colchooser = new Button("顯示調(diào)色板");</p><p><b> //各組件事件監(jiān)聽</b></p><p> clear.a
50、ddActionListener(this);</p><p> eraser.addActionListener(this);</p><p> pen.addActionListener(this);</p><p> drLine.addActionListener(this);</p><p> drCircle.addAct
51、ionListener(this);</p><p> drRect.addActionListener(this);</p><p> colchooser.addActionListener(this); </p><p> 顏色 = new Label("畫筆顏色",Label.CENTER);</p><
52、;p> 大小B = new Label("畫筆大小",Label.CENTER);</p><p> 大小E = new Label("橡皮大小",Label.CENTER);</p><p><b> //面板添加組件</b></p><p> toolPanel.add(pen);<
53、;/p><p> toolPanel.add(drLine);</p><p> toolPanel.add(drCircle);</p><p> toolPanel.add(drRect);</p><p> toolPanel.add(顏色); toolPanel.add(ColChoice);</p><p&g
54、t; toolPanel.add(大小B); toolPanel.add(SizeChoice);</p><p> toolPanel.add(colchooser);</p><p> toolPanel.add(eraser);</p><p> toolPanel.add(大小E); toolPanel.add(EraserChoice);</
55、p><p> toolPanel.add(clear);</p><p> //工具面板到APPLET面板</p><p> add(toolPanel,BorderLayout.NORTH);</p><p> setBounds(60,60,800,650);</p><p> setVisible(true
56、);</p><p> validate();</p><p> //dialog for save and load</p><p> addWindowListener(new WindowAdapter()</p><p><b> {</b></p><p> public vo
57、id windowClosing(WindowEvent e)</p><p> { System.exit(0);}</p><p><b> });</b></p><p><b> }</b></p><p> public void paint(Graphics g)</p&g
58、t;<p><b> {</b></p><p> Graphics2D g2d = (Graphics2D)g;</p><p> Point p1,p2;</p><p> n = paintInfo.size();</p><p> if(toolFlag==2)</p>&l
59、t;p> g.clearRect(0,0,getSize().width,getSize().height);//清除</p><p> switch(type)</p><p><b> {</b></p><p><b> case 3:</b></p><p> Line2D
60、line = new Line2D.Double(xx0,yy0,xx1,yy1);</p><p> g2d.draw(line);</p><p><b> break;</b></p><p><b> case 4:</b></p><p> Ellipse2D ellipse1 =
61、 new Ellipse2D.Double(xx0, yy0, Math.abs(xx1-xx0) ,Math.abs(yy1-yy0));</p><p> g2d.draw(ellipse1);</p><p><b> break;</b></p><p><b> case 5:</b></p>
62、<p> Rectangle2D rect1 = new Rectangle2D.Double(xx0, yy0, Math.abs(xx1-xx0) , Math.abs(yy1-yy0));</p><p> g2d.draw(rect1);</p><p><b> break;</b></p><p> defau
63、lt:break;</p><p><b> }</b></p><p> for(int i=0; i<n-1; i++)</p><p><b> {</b></p><p> p1 = (Point)paintInfo.elementAt(i);</p><p
64、> p2 = (Point)paintInfo.elementAt(i+1);</p><p> size = new BasicStroke(p1.boarder,BasicStroke.CAP_BUTT,</p><p> BasicStroke.JOIN_BEVEL); g2d.setColor(p1.col);</p>&
65、lt;p> g2d.setStroke(size);</p><p> if(p1.tool==p2.tool)</p><p> { </p><p> switch(p1.tool)</p><p><b> {</b></p><p> cas
66、e 0://畫筆</p><p> Line2D line1 = new Line2D.Double(p1.x, p1.y, p2.x,p2.y);</p><p> g2d.draw(line1);</p><p><b> break;</b></p><p> case 1://橡皮</p>
67、<p> g.clearRect(p1.x, p1.y, p1.boarder, p1.boarder);</p><p><b> break;</b></p><p> case 3://畫直線</p><p> Line2D line2 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y
68、);</p><p> g2d.draw(line2);</p><p><b> break;</b></p><p> case 4://畫圓</p><p> Ellipse2D ellipse = new Ellipse2D.Double(p1.x, p1.y, Math.abs(p2.x-p1.x) ,
69、Math.abs(p2.y-p1.y));</p><p> g2d.draw(ellipse);</p><p><b> break;</b></p><p> case 5://畫矩形</p><p> Rectangle2D rect = new Rectangle2D.Double(p1.x, p1.y
70、, Math.abs(p2.x-p1.x) ,Math.abs(p2.y-p1.y));</p><p> g2d.draw(rect);</p><p><b> break;</b></p><p> case 6://截?cái)?,跳過</p><p><b> i=i+1;</b></
71、p><p><b> break;</b></p><p> default :break;</p><p> }//end switch</p><p><b> }//end if</b></p><p> }//end for</p><p&g
72、t;<b> } </b></p><p> public void itemStateChanged(ItemEvent e)</p><p><b> {</b></p><p> if(e.getSource()==ColChoice)//預(yù)選顏色</p><p><b>
73、 {</b></p><p> String name = ColChoice.getSelectedItem();</p><p> if(name=="黑色")</p><p> { c = new Color(0,0,0); }</p><p> else if(name=="紅色&q
74、uot;)</p><p> { c = new Color(255,0,0); }</p><p> else if(name=="綠色")</p><p> { c = new Color(0,255,0); }</p><p> else if(name=="藍(lán)色")</p>
75、<p> { c = new Color(0,0,255); }</p><p><b> }</b></p><p> else if(e.getSource()==SizeChoice)//畫筆大小</p><p><b> {</b></p><p> String se
76、lected = SizeChoice.getSelectedItem();</p><p> if(selected=="1")</p><p><b> {</b></p><p><b> con = 1;</b></p><p> size = new Basic
77、Stroke(con,BasicStroke.CAP_BUTT,</p><p> BasicStroke.JOIN_BEVEL);</p><p><b> }</b></p><p> else if(selected=="3")</p><p><b> {</b>
78、</p><p><b> con = 3;</b></p><p> size = new BasicStroke(con,BasicStroke.CAP_BUTT,</p><p> BasicStroke.JOIN_BEVEL);</p><p><b> }</b></p>
79、;<p> else if(selected=="5")</p><p><b> { </b></p><p><b> con = 5;</b></p><p> size = new BasicStroke(con,BasicStroke.CAP_BUTT,</p>
80、;<p> BasicStroke.JOIN_BEVEL);</p><p><b> }</b></p><p> else if(selected=="7")</p><p><b> { </b></p><p><b> con = 7;
81、</b></p><p> size = new BasicStroke(con,BasicStroke.CAP_BUTT,</p><p> BasicStroke.JOIN_BEVEL);</p><p><b> }</b></p><p> else if(selected=="9&
82、quot;)</p><p><b> { </b></p><p><b> con = 9;</b></p><p> size = new BasicStroke(con,BasicStroke.CAP_BUTT,</p><p> BasicStroke.JOIN_BEVEL);&l
83、t;/p><p><b> }</b></p><p><b> }</b></p><p> else if(e.getSource()==EraserChoice)//橡皮大小</p><p><b> {</b></p><p> Strin
84、g Esize = EraserChoice.getSelectedItem();</p><p> if(Esize=="2")</p><p> { Econ = 3*3; }</p><p> else if(Esize=="3")</p><p> { Econ = 4*4; }<
85、/p><p> else if(Esize=="4")</p><p> { Econ = 5*5; }</p><p> else if(Esize=="5")</p><p> { Econ = 6*6; }</p><p><b> }</b>&
86、lt;/p><p><b> }</b></p><p> public void mouseDragged(MouseEvent e)</p><p><b> {</b></p><p> xx1 = (int)e.getX();</p><p> yy1 = (i
87、nt)e.getY();</p><p> Point p1 ;</p><p> switch(toolFlag){</p><p> case 0://畫筆</p><p> x = (int)e.getX();</p><p> y = (int)e.getY();</p><p&g
88、t; p1 = new Point(x, y, c, toolFlag, con);</p><p> paintInfo.addElement(p1);</p><p> repaint();</p><p><b> break;</b></p><p> case 1://橡皮</p>&l
89、t;p> x = (int)e.getX();</p><p> y = (int)e.getY();</p><p> p1 = new Point(x, y, null, toolFlag, Econ);</p><p> paintInfo.addElement(p1);</p><p> repaint();</
90、p><p> break; </p><p><b> case 3:</b></p><p> case 4: </p><p><b> case 5:</b></p><p> repaint();</p><
91、;p><b> break;</b></p><p><b> default :</b></p><p><b> }</b></p><p> //repaint();</p><p><b> } </b></p>
92、<p> public void mousePressed(MouseEvent e)</p><p><b> {</b></p><p> xx0= (int)e.getX();</p><p> yy0= (int)e.getY();</p><p><b> Point p2;<
93、;/b></p><p> switch(toolFlag)</p><p><b> {</b></p><p> case 3://直線</p><p><b> type=3;</b></p><p> x = (int)e.getX();</p&
94、gt;<p> y = (int)e.getY();</p><p> p2 = new Point(x, y, c, toolFlag, con);</p><p> paintInfo.addElement(p2);</p><p><b> break;</b></p><p> case
95、4: //圓</p><p><b> type=4;</b></p><p> x = (int)e.getX();</p><p> y = (int)e.getY();</p><p> p2 = new Point(x, y, c, toolFlag, con);</p><p>
96、 paintInfo.addElement(p2);</p><p><b> break;</b></p><p> case 5: //矩形</p><p><b> type=5;</b></p><p> x = (int)e.getX();</p><p>
97、; y = (int)e.getY();</p><p> p2 = new Point(x, y, c, toolFlag, con);</p><p> paintInfo.addElement(p2);</p><p><b> break;</b></p><p> default :type=6;&l
98、t;/p><p><b> }</b></p><p><b> }</b></p><p> public void mouseEntered(MouseEvent e){}</p><p> public void mouseExited(MouseEvent e){}</p>
99、<p> public void mouseClicked(MouseEvent e){}</p><p> public void mouseMoved(MouseEvent e){} </p><p> public void actionPerformed(ActionEvent e)</p><p><b> {<
100、/b></p><p> if(e.getSource()==pen)//畫筆</p><p> { toolFlag = 0; }</p><p> if(e.getSource()==eraser)//橡皮</p><p> { toolFlag = 1; }</p><p> if(e.getSo
101、urce()==clear)//清除</p><p><b> {</b></p><p> toolFlag = 2;</p><p> paintInfo.removeAllElements();</p><p> repaint();</p><p><b> }<
102、/b></p><p> if(e.getSource()==drLine)//畫線</p><p> { toolFlag = 3; }</p><p> if(e.getSource()==drCircle)//畫圓</p><p> { toolFlag = 4; }</p><p> if(e.
103、getSource()==drRect)//畫矩形</p><p> { toolFlag = 5; }</p><p> if(e.getSource()==colchooser)//調(diào)色板</p><p><b> {</b></p><p> Color newColor = JColorChooser.s
104、howDialog(this,</p><p><b> "調(diào)色板",c);</b></p><p> c = newColor;}</p><p><b> }</b></p><p><b> @Override</b></p>&
105、lt;p> public void mouseReleased(MouseEvent arg0) {</p><p> // TODO Auto-generated method stub</p><p><b> }</b></p><p><b> }//end</b></p><p&
106、gt; public class PaintBrush</p><p><b> {</b></p><p> public static void main (String args[])</p><p><b> {</b></p><p> new paintboard("
107、畫圖程序");</p><p><b> }</b></p><p><b> }</b></p><p><b> 六.課程設(shè)計(jì)總結(jié)</b></p><p> 此軟件基本達(dá)到理想效果,在編寫這一軟件的過程中我學(xué)到了很多java編程知識(shí),并學(xué)會(huì)了如何快速的改正
108、程序中的錯(cuò)誤。</p><p> 經(jīng)過一周的課程設(shè)計(jì),java編程方面的知識(shí)收獲很大,但這只是java編程知識(shí)的冰山一角,還有很多東西沒有學(xué)到。這次課程設(shè)計(jì)受益匪淺,不僅鍛煉了我做事堅(jiān)持不懈的心態(tài),也慢慢地培養(yǎng)了我不懂就查書的好習(xí)慣,我的自學(xué)能力也有了一定的提高,我更明白了搞計(jì)算機(jī)這行,要學(xué)到真正的技術(shù)完全要靠自己,在課堂上只能學(xué)到最基本的東西,但這最基本的東西也一定要學(xué)好。</p><p&
109、gt; 畢業(yè)在即,在以后的工作學(xué)習(xí)中,我還會(huì)將更多的時(shí)間與精力投入到Java的學(xué)習(xí)中,不斷為自己所學(xué)的知識(shí)補(bǔ)充新鮮血液。</p><p><b> 七.參考文獻(xiàn)</b></p><p> 《java2面向?qū)ο蟪绦蛟O(shè)計(jì)》 洪維恩,何嘉 編著 </p><p> 中國(guó)鐵道出版社2005.01</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)報(bào)告---利用java實(shí)現(xiàn)簡(jiǎn)單聊天室
- java課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告---考試系統(tǒng)
- java課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告-
- java課程設(shè)計(jì)----課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告--java日歷設(shè)計(jì)
- java課程設(shè)計(jì)報(bào)告學(xué)生管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告《新聞發(fā)布系統(tǒng)》
- java課程設(shè)計(jì)報(bào)告--beatbox
- JAVA課程設(shè)計(jì)報(bào)告.doc
- java課程設(shè)計(jì)報(bào)告----教室管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告---學(xué)生考試系統(tǒng)
- java課程設(shè)計(jì)記憶系統(tǒng)報(bào)告
- java課程設(shè)計(jì)報(bào)告--雇員管理系統(tǒng)
- java學(xué)生管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java語(yǔ)言課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)---java程序設(shè)計(jì)
- java課程設(shè)計(jì)報(bào)告-公交管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論