java課程設(shè)計(jì)報(bào)告---紅綠燈控制道路車輛_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  JAVA實(shí)驗(yàn)報(bào)告</b></p><p><b>  題目</b></p><p><b>  紅綠燈控制道路車輛</b></p><p><b>  2.設(shè)計(jì)思路</b></p><p>  交通紅綠燈是交通的控制中心,控制

2、著道路上的所有車輛的行進(jìn)與停止,各各車輛為各自的線程,紅綠燈也是一個(gè)線程,同時(shí),紅綠燈線程用控制著車子線程的run、suspend、resume。</p><p><b>  3.重點(diǎn)代碼解釋</b></p><p> ?。?)此處代碼為添加背景音樂及建立一個(gè)JPanel容器</p><p>  File musicFile;/////////

3、//////////////////</p><p><b>  URI uri;</b></p><p><b>  URL url;</b></p><p>  public void init()</p><p><b>  {</b></p><p&

4、gt;  musicFile=new File("街道上汽車鳴笛的聲音.wav");</p><p>  uri=musicFile.toURI();</p><p>  try{url=uri.toURL();}</p><p>  catch(Exception e){}</p><p>  AudioClip cli

5、p=JApplet.newAudioClip(url);</p><p>  clip.loop();////////////////////////以上為添加音樂</p><p>  Container cp=getContentPane(); </p><p>  CBox pa=new CBox(); </p><p>  pa.

6、setPreferredSize(new Dimension(1000, 1000));</p><p>  pa.setBackground(Color.red); </p><p>  cp.add(pa,BorderLayout.CENTER);///////建立一個(gè)JPanel容器</p><p><b>  }</b></p&

7、gt;<p> ?。?)此段代碼為紅綠燈線程,控制紅綠燈的變化,同時(shí)還會(huì)在變化燈時(shí)喚醒其他的線程,使正在sleep的線程resume。</p><p>  while(th5==Thread.currentThread())////////////////////線程5,此線程控制紅綠燈</p><p><b>  {</b></p>&l

8、t;p>  if(L1.RedLight)</p><p><b>  {</b></p><p>  th3.resume();//當(dāng)紅燈亮?xí)r,東西向車子停,南北向車子動(dòng)</p><p><b>  try{</b></p><p>  th5.sleep(5000);</p>

9、<p>  L1.RedLight=false;</p><p>  L1.YellowLight=true;</p><p>  L1.GreenLight=false;</p><p>  repaint();</p><p><b>  }</b></p><p>  catc

10、h(Exception e) {}</p><p><b>  }</b></p><p>  if(L1.YellowLight)</p><p><b>  {</b></p><p>  th3.resume();//當(dāng)黃燈亮?xí)r,東西向車子停,南北向車子動(dòng)</p><p&

11、gt;<b>  try{</b></p><p>  th5.sleep(5000);</p><p>  L1.YellowLight=false;</p><p>  L1.GreenLight=true;</p><p>  L1.RedLight=false;</p><p>  rep

12、aint();</p><p><b>  }</b></p><p>  catch(Exception e) {}</p><p><b>  }</b></p><p>  if(L1.GreenLight)</p><p><b>  {</b>

13、</p><p>  th1.resume();//當(dāng)綠燈亮?xí)r,東西向車子啟動(dòng),南北向車子停止</p><p>  th2.resume();</p><p>  th4.resume();</p><p><b>  try{</b></p><p>  th5.sleep(10000);<

14、;/p><p>  L1.YellowLight=false;</p><p>  L1.RedLight=true;</p><p>  L1.GreenLight=false;</p><p>  repaint();</p><p><b>  }</b></p><p>

15、;  catch(Exception e) {}</p><p><b>  }</b></p><p><b>  }</b></p><p> ?。?)我們在屏幕上自繪圖形或者是添加圖片都是要通過所在畫布的重繪來實(shí)現(xiàn)的,因此閃爍的出現(xiàn)必然與重繪機(jī)制有著一些關(guān)聯(lián)。在awt中對于窗體畫布的重繪其條用順序是repaint(

16、) —>update()—>paint()。update中有一個(gè)清屏的作用,即g.clearRect(0, 0, width, height);然后再在下面調(diào)用paint(g),函數(shù)進(jìn)行重繪。</p><p>  public void update(Graphics g) //雙緩沖原理實(shí)現(xiàn)消除閃爍</p><p>  { </p><

17、;p>  Image offScreenImage = null;</p><p>  if (offScreenImage == null) </p><p>  { </p><p>  offScreenImage = this.createImage(2000, 2000); </p><p

18、>  } </p><p>  Graphics g1 = offScreenImage.getGraphics();</p><p>  Color c = Color.RED; </p><p>  g1 .setColor(c); </p><p&g

19、t;  g1 .fillRect(0, 0, 2000, 1000); </p><p>  paint(g1); </p><p>  g1.drawImage(offScreenImage, 0, 0, null); </p><p><b>  } </b></p&g

20、t;<p> ?。?)由各各類的對象調(diào)用類的paint方法,畫出圖形。</p><p>  public void paint(Graphics g)</p><p><b>  {</b></p><p>  super.paint(g);</p><p>  Graphics2D g2=(Graphic

21、s2D)g;</p><p>  setBackground(Color.red);</p><p>  g2.setStroke(new BasicStroke(2));</p><p>  r1.paint(g2);//畫道路r1</p><p>  c1.paintCar1(g2);//畫車c1</p><p>

22、  c2.paintCar2(g2);//畫車c2</p><p>  c3.paintCar3(g2);//畫車c3</p><p>  c4.paintCar4(g2);//畫車c4</p><p>  L1.paintLight(g2);//畫路燈L1</p><p><b>  }</b></p>

23、<p> ?。?)在package tool中編寫road類,并import到default包中,以便在finalwork中調(diào)用。代碼略</p><p> ?。?)在package tool中編寫car類,并import到default包中,以便在finalwork中調(diào)用。代碼略</p><p> ?。?)在package tool中編寫light類,并import到defaul

24、t包中,以便在finalwork中調(diào)用。代碼略</p><p><b>  4.部分截屏</b></p><p><b>  5.總結(jié)</b></p><p>  最近一段時(shí)間的java結(jié)業(yè)設(shè)計(jì),是我們這學(xué)期所學(xué)內(nèi)容的一個(gè)系統(tǒng)性總結(jié)。通過這次的設(shè)計(jì),讓我明白了很多的東西。一是課業(yè)知識的不足,在做程序時(shí)我遇到了很多的技術(shù)性難

25、題,是我們以前都沒有遇到過的,即使是在看幾遍書的情況下還是不能很好的運(yùn)用,讓我了解到自己再java方面的很多知識漏洞。二是運(yùn)用API文檔的意識不強(qiáng),在遇到問題時(shí),總不能在第一時(shí)間里查看API文檔來解決問題,而是很盲目的通過其他的途徑尋找解決辦法,卻不知最好的幫手就在自己的身邊。</p><p>  在以后的學(xué)習(xí)中一定要注意這次所沒有注意到的問題,平時(shí)認(rèn)真的學(xué)好專業(yè)知識,并不斷的通過課外途徑充實(shí)自己在課堂上所學(xué)知識

26、的不足之處,課程學(xué)習(xí)達(dá)到精益求精。</p><p><b>  附:全部代碼</b></p><p> ?。?)finalwork類代碼:</p><p>  import java.applet.Applet;</p><p>  import java.applet.AudioClip;</p><

27、;p>  import java.awt.*;</p><p>  import java.io.File;</p><p>  import java.net.URI;</p><p>  import java.net.URL;</p><p>  import javax.swing.*;</p><p>

28、  import tool.car;</p><p>  import tool.light;</p><p>  import tool.road;</p><p>  @SuppressWarnings({ "serial", "unused" })</p><p>  public class

29、finalwork extends JApplet </p><p><b>  {</b></p><p>  File musicFile;///////////////////////////</p><p><b>  URI uri;</b></p><p><b>  URL

30、url;</b></p><p>  public void init()</p><p><b>  {</b></p><p>  musicFile=new File("街道上汽車鳴笛的聲音.wav");</p><p>  uri=musicFile.toURI();</p&

31、gt;<p>  try{url=uri.toURL();}</p><p>  catch(Exception e){}</p><p>  AudioClip clip=JApplet.newAudioClip(url);</p><p>  clip.loop();////////////////////////以上為添加音樂</p>

32、<p>  Container cp=getContentPane(); </p><p>  CBox pa=new CBox(); </p><p>  pa.setPreferredSize(new Dimension(1000, 1000));</p><p>  pa.setBackground(Color.lightGray); &

33、lt;/p><p>  cp.add(pa,BorderLayout.CENTER);///////建立一個(gè)JPanel容器</p><p><b>  }</b></p><p><b>  }</b></p><p>  @SuppressWarnings("serial")&l

34、t;/p><p>  class CBox extends JPanel implements Runnable </p><p><b>  {</b></p><p>  road r1=new road();//申請road類的對象r1</p><p>  car c1=new car();//申請car類的對象c1&

35、lt;/p><p>  car c2=new car();//申請類car類的對象c2</p><p>  car c3=new car();//申請類car的對象c3</p><p>  car c4=new car();//申請類car的對象c4</p><p>  light L1=new light();//申請light類的對象L1&l

36、t;/p><p>  Thread th1=null,th2=null,th3=null,th4=null,th5=null;</p><p>  public CBox()</p><p><b>  {</b></p><p>  th1=new Thread(this);</p><p>  t

37、h1.start();</p><p>  th2=new Thread(this);</p><p>  th2.start();</p><p>  th3=new Thread(this);</p><p>  th3.start();</p><p>  th4=new Thr

38、ead(this);</p><p>  th4.start();</p><p>  th5=new Thread(this);</p><p>  th5.start();</p><p><b>  }//線程初始化</b></p><p>  public void st

39、op()</p><p><b>  {</b></p><p><b>  th1=null;</b></p><p><b>  th2=null;</b></p><p><b>  th3=null;</b></p><p>

40、;<b>  th4=null;</b></p><p><b>  th5=null;</b></p><p>  }//線程的stop()</p><p>  @SuppressWarnings("deprecation")</p><p>  public void run

41、()//線程的run()方法</p><p><b>  {</b></p><p>  Thread current=Thread.currentThread();</p><p>  while(th1==current) //////////////////////////////線程1,控制西向紅車

42、 </p><p><b>  { </b></p><p>  if((L1.YellowLight||L1.RedLight)&&c1.x6[0]<830&&c1.x6[0]>700)</p><p><b>  {</b></p><p>  t

43、h1.suspend();//當(dāng)路燈顯示為紅燈或黃燈,且在斑馬線附近時(shí),此線程suspend,車子停止 </p><p><b>  }</b></p><p><b>  else </b></p><p>  if(L1.GreenLight)</p><p><b>

44、  {</b></p><p>  th1.resume(); //在燈變綠燈時(shí),此線程在線程5中resume</p><p><b>  }</b></p><p>  if(c1.x6[4]<=0)</p><p><b>  {</b></p><p>

45、;  c1.x6[0]=1620;c1.x6[1]=1624;c1.x6[2]=1640;c1.x6[3]=1670;</p><p>  c1.x6[4]=1674;c1.x6[5]=1680;c1.x6[6]=1620;</p><p>  repaint();</p><p><b>  }</b></p><p&g

46、t;<b>  else</b></p><p>  { </p><p>  for(int j=0;j<c1.x6.length;j++)</p><p><b>  {</b></p><p>  c1.x6[j]=

47、c1.x6[j]-20;</p><p>  c1.e41=c1.e41-4;</p><p>  c1. e51=c1.e51-4;</p><p><b>  }</b></p><p>  repaint();</p><p><b>  try</b></p&

48、gt;<p>  {th1.sleep(100);}</p><p>  catch(InterruptedException e){}</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(th2==current) ////

49、/////////////////////////線程2,控制西向綠車 </p><p><b>  { </b></p><p>  if((L1.YellowLight||L1.RedLight)&&c2.x7[0]<830&&c2.x7[0]>700)</p>&

50、lt;p>  {th2.suspend();}//同th1</p><p><b>  else </b></p><p>  if(L1.GreenLight)</p><p><b>  {</b></p><p>  th2.resume();</p><p>&

51、lt;b>  }</b></p><p>  if(c2.x7[4]<0)</p><p><b>  {</b></p><p>  c2.x7[0]=2020;c2.x7[1]=2024;c2.x7[2]=2040;c2.x7[3]=2070;</p><p>  c2.x7[4]=2074;

52、c2.x7[5]=2080;c2.x7[6]=2020;</p><p><b>  }</b></p><p><b>  else</b></p><p>  { </p><p>  for(int j=0;j<c2

53、.x7.length;j++)</p><p><b>  {</b></p><p>  c2.x7[j]=c2.x7[j]-12;</p><p>  c2.e71=c2.e71-2;</p><p>  c2.e71=c2.e71-2;</p><p><b>  }</b&

54、gt;</p><p>  repaint();</p><p><b>  try</b></p><p>  { th2.sleep(100);}</p><p>  catch(InterruptedException e){}</p><p><b>  } </b>

55、</p><p><b>  } </b></p><p>  while(th3==Thread.currentThread())//////////////////////線程3,控制東向綠車</p><p><b>  {</b></p><p>  if(L1.GreenLight&

56、&c3.yy[0]>=351&&c3.yy[0]<=407)</p><p><b>  {</b></p><p>  th3.suspend();</p><p><b>  }</b></p><p>  if(c3.yy[0]<-10)</p&

57、gt;<p><b>  {</b></p><p>  c3.yy[0]=800;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><

58、p>  c3.yy[0]=c3.yy[0]-5;</p><p><b>  try{</b></p><p>  th3.sleep(100);</p><p>  repaint();</p><p><b>  }</b></p><p>  catch(Int

59、erruptedException e){}</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(th4==Thread.currentThread())///////////////////////線程4,控制北向車</p><p>&l

60、t;b>  {</b></p><p>  if((L1.RedLight||L1.YellowLight)&&c4.xx[0]>=398-60&&c4.xx[0]<=488-60)</p><p><b>  {</b></p><p>  th4.suspend();</p

61、><p><b>  }</b></p><p><b>  else</b></p><p>  if(L1.GreenLight)</p><p><b>  {</b></p><p>  th4.resume();</p><p&

62、gt;<b>  }</b></p><p>  if(c4.xx[0]>1400)</p><p><b>  {</b></p><p>  c4.xx[0]=-150;</p><p><b>  }</b></p><p><b>

63、;  else</b></p><p><b>  {</b></p><p>  c4.xx[0]=c4.xx[0]+5; </p><p>  repaint();</p><p><b>  }</b></p><p><b>  try{&l

64、t;/b></p><p>  th4.sleep(100);</p><p><b>  }</b></p><p>  catch(InterruptedException e){}</p><p><b>  }</b></p><p>  while(th5==

65、Thread.currentThread())////////////////////線程5,此線程控制紅綠燈</p><p><b>  {</b></p><p>  if(L1.RedLight)</p><p><b>  {</b></p><p>  th3.resume();//當(dāng)紅燈

66、亮?xí)r,東西向車子停,南北向車子動(dòng)</p><p><b>  try{</b></p><p>  th5.sleep(5000);</p><p>  L1.RedLight=false;</p><p>  L1.YellowLight=true;</p><p>  L1.GreenLigh

67、t=false;</p><p>  repaint();</p><p><b>  }</b></p><p>  catch(Exception e) {}</p><p><b>  }</b></p><p>  if(L1.YellowLight)</p&

68、gt;<p><b>  {</b></p><p>  th3.resume();//當(dāng)黃燈亮?xí)r,東西向車子停,南北向車子動(dòng)</p><p><b>  try{</b></p><p>  th5.sleep(5000);</p><p>  L1.YellowLight=fal

69、se;</p><p>  L1.GreenLight=true;</p><p>  L1.RedLight=false;</p><p>  repaint();</p><p><b>  }</b></p><p>  catch(Exception e) {}</p>&l

70、t;p><b>  }</b></p><p>  if(L1.GreenLight)</p><p><b>  {</b></p><p>  th1.resume();//當(dāng)綠燈亮?xí)r,東西向車子啟動(dòng),南北向車子停止</p><p>  th2.resume();</p>&

71、lt;p>  th4.resume();</p><p><b>  try{</b></p><p>  th5.sleep(10000);</p><p>  L1.YellowLight=false;</p><p>  L1.RedLight=true;</p><p>  L1.G

72、reenLight=false;</p><p>  repaint();</p><p><b>  }</b></p><p>  catch(Exception e) {}</p><p><b>  }</b></p><p><b>  }</b&

73、gt;</p><p><b>  }</b></p><p>  public void update(Graphics g) //雙緩沖原理實(shí)現(xiàn)消除閃爍</p><p>  { </p><p>  Image offScreenImage = null;</p><p>

74、;  if (offScreenImage == null) </p><p>  { </p><p>  offScreenImage = this.createImage(2000, 2000); </p><p>  } </p><p>  Graph

75、ics g1 = offScreenImage.getGraphics();</p><p>  Color c = Color.black; </p><p>  g1 .setColor(c); </p><p>  g1 .fillRect(0, 0, 2000, 1000); </p&g

76、t;<p>  paint(g1); </p><p>  g1.drawImage(offScreenImage, 0, 0, null); </p><p><b>  } </b></p><p>  public void paint(Graphics g)</p>

77、<p><b>  {</b></p><p>  super.paint(g);</p><p>  Graphics2D g2=(Graphics2D)g;</p><p>  g2.setBackground(Color.lightGray);</p><p>  g2.setStroke(new B

78、asicStroke(2));</p><p>  r1.paint(g2);//畫道路r1</p><p>  c1.paintCar1(g2);//畫車c1</p><p>  c2.paintCar2(g2);//畫車c2</p><p>  c3.paintCar3(g2);//畫車c3</p><p>  c

79、4.paintCar4(g2);//畫車c4</p><p>  L1.paintLight(g2);//畫路燈L1</p><p><b>  }</b></p><p><b>  }</b></p><p> ?。?)road類代碼:</p><p>  package

80、 tool;</p><p>  import java.awt.BasicStroke;</p><p>  import java.awt.Color;</p><p>  import java.awt.Font;</p><p>  import java.awt.Graphics2D;</p><p>  i

81、mport java.awt.geom.GeneralPath;</p><p>  import java.awt.geom.Line2D;</p><p>  public class road /////////////////////////////////////////////</p><p><b>  {</b></p&g

82、t;<p>  public int x1[]={0,535,535,695,695,1462,1462,695,695,535,535,0,0};</p><p>  public int y1[]={162,162,0,0,162,162,322,322,690,690,322,322,162};//用數(shù)組存儲(chǔ)畫道路的各點(diǎn)坐標(biāo)</p><p>  Font f1=new

83、Font("隸書",Font.BOLD,48);</p><p>  public void paint(Graphics2D g2)</p><p><b>  {</b></p><p>  g2.setPaint(new Color(100,120,150));</p><p>  g2.set

84、Background(Color.green);</p><p>  g2.setStroke(new BasicStroke(4));</p><p>  GeneralPath polygon2=new GeneralPath(0,x1.length);</p><p>  polygon2.moveTo(x1[0],y1[0]);</p>&l

85、t;p>  for(int index=1;index<x1.length;index++)</p><p><b>  {</b></p><p>  polygon2.lineTo(x1[index], y1[index]);</p><p><b>  }</b></p><p>

86、  polygon2.closePath();</p><p>  g2.fill(polygon2);</p><p>  g2.setPaint(Color.yellow);</p><p>  g2.setStroke(new BasicStroke(6));</p><p>  Line2D.Double line1=new Line

87、2D.Double(608,0,608,61);</p><p>  Line2D.Double line2=new Line2D.Double(819,242,1362,242);</p><p>  Line2D.Double line3=new Line2D.Double(608,407,608,660);</p><p>  Line2D.Double li

88、ne4=new Line2D.Double(0,242,398,242);//路中間的黃線</p><p>  g2.draw(line1);</p><p>  g2.draw(line2);</p><p>  g2.draw(line3);</p><p>  g2.draw(line4);</p><p>  

89、Line2D.Double zebraCrossing11=new Line2D.Double(535,61,695,61);</p><p>  Line2D.Double zebraCrossing12=new Line2D.Double(535,83,695,83);</p><p>  Line2D.Double zebraCrossing13=new Line2D.Double(

90、535,109,695,109);//斑馬線1</p><p>  Line2D.Double zebraCrossing21=new Line2D.Double(749,162,749,322);</p><p>  Line2D.Double zebraCrossing22=new Line2D.Double(785,162,785,322);</p><p>

91、  Line2D.Double zebraCrossing23=new Line2D.Double(819,162,819,322);//斑馬線2</p><p>  Line2D.Double zebraCrossing31=new Line2D.Double(535,355,695,355);</p><p>  Line2D.Double zebraCrossing32=new Li

92、ne2D.Double(535,379,695,379);</p><p>  Line2D.Double zebraCrossing33=new Line2D.Double(535,407,695,407);//斑馬線3</p><p>  Line2D.Double zebraCrossing41=new Line2D.Double(398,162,398,322);</p>

93、;<p>  Line2D.Double zebraCrossing42=new Line2D.Double(427,162,427,322);</p><p>  Line2D.Double zebraCrossing43=new Line2D.Double(460,162,460,322);//斑馬線4</p><p>  g2.setPaint(Color.white)

94、;</p><p>  g2.draw(zebraCrossing11);</p><p>  g2.draw(zebraCrossing12);</p><p>  g2.draw(zebraCrossing13);</p><p>  g2.draw(zebraCrossing21);</p><p>  g2.d

95、raw(zebraCrossing22);</p><p>  g2.draw(zebraCrossing23);</p><p>  g2.draw(zebraCrossing31);</p><p>  g2.draw(zebraCrossing32);</p><p>  g2.draw(zebraCrossing33);</p&

96、gt;<p>  g2.draw(zebraCrossing41);</p><p>  g2.draw(zebraCrossing42);</p><p>  g2.draw(zebraCrossing43);</p><p>  g2.setPaint(Color.black);</p><p>  g2.setFont(f

97、1);</p><p>  g2.drawString("2402100210", 800, 400);</p><p>  g2.drawString("黃小君",800,450);</p><p><b>  }</b></p><p><b>  }</b&g

98、t;</p><p> ?。?)car類代碼:</p><p>  package tool;</p><p>  import java.awt.Color;</p><p>  import java.awt.Graphics2D;</p><p>  import java.awt.geom.Ellipse2D;

99、</p><p>  import java.awt.geom.GeneralPath;</p><p>  import java.awt.geom.Rectangle2D;</p><p>  public class car </p><p><b>  {</b></p><p>  pu

100、blic int x61=1120,x62=1124,x63=1140,x64=1170,x65=1174,x66=1180,x67=1120,</p><p>  y61=195,y62=185,y63=175,y64=175,y65=185,y66=195,y67=195,</p><p>  x6[]={x61,x62,x63,x64,x65,x66,x67},</p>

101、<p>  y6[]={y61,y62,y63,y64,y65,y66,y67},//車1</p><p>  x71=1020,x72=1024,x73=1040,x74=1070,x75=1074,x76=1080,x77=1020,</p><p>  y71=225,y72=215,y73=205,y74=205,y75=215,y76=225,y77=225,<

102、/p><p>  x7[]={x71,x72,x73,x74,x75,x76,x77},</p><p>  y7[]={y71,y72,y73,y74,y75,y76,y77},//車2</p><p>  e41=935, e42=190, e43=10, e44=10,</p><p>  e51=960,e52=190,e53=10,e5

103、4=10,//車1輪</p><p>  e61=1035,e62=220,e63=10,e64=10,</p><p>  e71=1060,e72=220,e73=10,e74=10,//車2輪</p><p>  x9=545+80,y9=420+500+200,w9=45,h9=60,</p><p>  yy[]={y9},<

104、/p><p>  x10=-60,y10=262,w10=60,h10=45,</p><p>  xx[]={x10};</p><p>  public void paintCar1(Graphics2D g2)</p><p><b>  {</b></p><p>  Ellipse2D.Do

105、uble e4=new Ellipse2D.Double(x6[5]-16,y6[5],e43,e44);</p><p>  Ellipse2D.Double e5=new Ellipse2D.Double(x6[6]+10,y6[6],e53,e54);</p><p>  g2.setPaint(Color.black);</p><p>  g2.fill(

106、e4);</p><p>  g2.fill(e5);</p><p>  g2.setPaint(Color.red);</p><p>  GeneralPath polygon1=new GeneralPath(0,x6.length);</p><p>  polygon1.moveTo(x6[0], y6[0]);</p>

107、;<p>  for(int index=0;index<x6.length;index++)</p><p><b>  {</b></p><p>  polygon1.lineTo(x6[index], y6[index]);</p><p><b>  }</b></p><

108、p>  polygon1.closePath();</p><p>  g2.draw(polygon1);//車身</p><p><b>  }</b></p><p>  public void paintCar2(Graphics2D g2)</p><p><b>  {</b>&l

109、t;/p><p>  Ellipse2D.Double e6=new Ellipse2D.Double(x7[5]-16,y7[5],e63,e64);</p><p>  Ellipse2D.Double e7=new Ellipse2D.Double(x7[6]+10,y7[6],e73,e74);//車輪</p><p>  g2.setPaint(Color.b

110、lack);</p><p>  g2.fill(e6);</p><p>  g2.fill(e7);</p><p>  g2.setPaint(Color.green);</p><p>  GeneralPath polygon2=new GeneralPath(0,x7.length);</p><p>  

111、polygon2.moveTo(x7[0], y7[0]);</p><p>  for(int index=0;index<x7.length;index++)</p><p><b>  {</b></p><p>  polygon2.lineTo(x7[index], y7[index]);</p><p>

112、;<b>  }</b></p><p>  polygon2.closePath();</p><p>  g2.draw(polygon2);//車身</p><p><b>  }</b></p><p>  public void paintCar3(Graphics2D g2)</p

113、><p><b>  {</b></p><p>  g2.setPaint(Color.red);</p><p>  g2.fill(new Rectangle2D.Double(x9,yy[0],w9,h9));</p><p><b>  }</b></p><p>  

114、public void paintCar4(Graphics2D g2)</p><p><b>  {</b></p><p>  g2.setPaint(Color.green);</p><p>  g2.fill(new Rectangle2D.Double(xx[0],y10,w10,h10));</p><p&g

115、t;<b>  }</b></p><p><b>  }</b></p><p> ?。?)light類代碼:</p><p>  package tool;</p><p>  import java.awt.BasicStroke;</p><p>  import j

116、ava.awt.Color;</p><p>  import java.awt.Graphics2D;</p><p>  import java.awt.geom.Ellipse2D;</p><p>  public class light </p><p><b>  {</b></p><p

117、>  Ellipse2D.Double light1=new Ellipse2D.Double(715,80,20,20),//紅燈</p><p>  light2=new Ellipse2D.Double(755,80,20,20),//綠燈</p><p>  light3=new Ellipse2D.Double(735,80,20,20);//黃燈</p>&

118、lt;p>  public boolean RedLight=false,</p><p>  YellowLight=false,</p><p>  GreenLight=true; </p><p>  public void paintLight(Graphics2D g2)</p><p><b>  {</b

119、></p><p>  g2.setStroke(new BasicStroke(6));</p><p>  g2.setColor(new Color(80,100,140));</p><p>  g2.fillRect(746,110,4,50);</p><p>  g2.drawRect(705,78,80,25);<

120、/p><p>  if(RedLight)</p><p>  { g2.setColor(Color.red);</p><p>  g2.fill(light1);</p><p>  g2.setColor(Color.gray);</p><p>  g2.fill(light2);</p><

121、p>  g2.fill(light3);</p><p><b>  }</b></p><p>  if(YellowLight)</p><p>  { g2.setColor(Color.yellow);</p><p>  g2.fill(light3);</p><p>  g2

122、.setColor(Color.gray);</p><p>  g2.fill(light1);</p><p>  g2.fill(light2);</p><p><b>  }</b></p><p>  if(GreenLight)</p><p>  { g2.setColor(Co

123、lor.green);</p><p>  g2.fill(light2);</p><p>  g2.setColor(Color.gray);</p><p>  g2.fill(light1);</p><p>  g2.fill(light3);</p><p><b>  } </

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論