面向?qū)ο笳n程設(shè)計--潛艇大作戰(zhàn)小游戲_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  1. 需求分析</b></p><p><b>  1.1需求分析:</b></p><p><b>  本程序的要求為</b></p><p>  使用Java建立一個小游戲</p><p>  程序中用到Java課程中的重點知識</p&g

2、t;<p><b>  1.2功能設(shè)計</b></p><p>  本游戲的功能有以下幾個方面:</p><p>  首先繪制一個首頁,首頁包括開始、退出按鈕,采用事件監(jiān)聽。</p><p>  進入游戲后使用,通過讀取文件,讀出以前的最好成績,使用菜單按鈕開始游戲</p><p>  通過方向鍵來控制潛艇

3、的移動方向,空格鍵釋放魚雷</p><p>  擊中敵人后加分,同時被敵人擊中一次就扣除一次機會,共3次機會</p><p><b>  2.概要設(shè)計</b></p><p><b>  2.1程序設(shè)計思路</b></p><p>  此游戲的關(guān)鍵點是潛艇是否被擊中的判斷,整個屏幕是個二維坐標(biāo)系,軍

4、艦在一個水平位置移動,當(dāng)在某個位置發(fā)射魚雷,判斷魚雷的圖片與不斷移動的潛艇圖片是否有重合的地方,如果有發(fā)生爆炸,如果沒有繼續(xù)移動。</p><p><b>  2.2程序運行界面</b></p><p><b>  2.3 流程圖</b></p><p>  本游戲的基本運行流程是啟動后把整個畫布作為一個線程,隨時準(zhǔn)備響應(yīng)

5、用戶按鍵操作的K響應(yīng),100ms掃描一次潛艇和水雷等物體的運行狀態(tài)。在掃描潛艇和水雷運動時,執(zhí)行各個物體畫面的移動方法。程序并不為每隔新增潛艇和水雷開啟一個新線程,太多線程會造成程序的性能直線下降;而是將每一個物體類型直接加入到畫布中,每當(dāng)一個新物體產(chǎn)生,將直接在畫布上畫出;當(dāng)物體消除時,將直接在畫布上被消除。這樣就形成一種注冊機制,所有游戲物體的產(chǎn)生和消除都需要畫布注冊,畫布擁有不同類型物體的所有“名單”,所以,當(dāng)執(zhí)行移動命令是只需要

6、遍歷畫布中所有游戲物體,依次執(zhí)行每隔游戲物體中定義的移動方法即可。 </p><p>  3.各模塊的功能及程序說明</p><p><b>  3.1主界面代碼</b></p><p>  主界面設(shè)計是使用坐標(biāo)系,具體實現(xiàn)圖如下:</p><p>  public class MainPanel extend

7、s JPanel </p><p><b>  {</b></p><p>  private static final long serialVersionUID = 1L;</p><p>  private MyButton startButton;</p><p>  private MyButton exitB

8、utton;</p><p>  private JLabel helpLabel;</p><p>  private JLabel helpLabel1;</p><p>  private JLabel helpLabel2;</p><p>  private JLabel helpLabel3;</p><p&g

9、t;  private Image image;</p><p>  private JLabel centerlabel;</p><p>  private boolean isStart;</p><p>  private boolean isExit;</p><p>  private Observable obs;<

10、;/p><p>  public MainPanel(Observable ob)</p><p><b>  {</b></p><p><b>  obs = ob;</b></p><p><b>  //初始化對象</b></p><p>  sta

11、rtButton = new MyButton("進入游戲");</p><p>  exitButton = new MyButton("退出游戲");</p><p>  helpLabel = new JLabel();</p><p>  helpLabel1 = new JLabel();</p>

12、<p>  helpLabel2 = new JLabel();</p><p>  helpLabel3 = new JLabel();</p><p>  centerlabel = new JLabel();</p><p>  this.setLayout(new BorderLayout());</p><p> 

13、 this.helpLabel.setPreferredSize(new Dimension(645,291));</p><p>  this.helpLabel1.setPreferredSize(new Dimension(180,80));</p><p>  this.helpLabel2.setPreferredSize(new Dimension(215,80));</

14、p><p>  this.helpLabel3.setPreferredSize(new Dimension(645,80));</p><p>  this.centerlabel.setPreferredSize(new Dimension(460,80));</p><p>  centerlabel.setLayout(new GridLayout(2,1));

15、</p><p>  centerlabel.add(this.startButton);</p><p>  centerlabel.add(this.exitButton);</p><p>  this.centerlabel.setBackground(new Color(255,255,0));</p><p>  this.add

16、(helpLabel,BorderLayout.NORTH);</p><p>  this.add(helpLabel1,BorderLayout.EAST);</p><p>  this.add(helpLabel2,BorderLayout.WEST);</p><p>  this.add(helpLabel3,BorderLayout.SOUTH);&l

17、t;/p><p>  this.add(centerlabel,BorderLayout.CENTER);</p><p>  //類中聲明了游戲中需要的各種對象,并載入游戲中的圖片</p><p>  image = Toolkit.getDefaultToolkit().getImage("imgs/主界面112.png"); </p>

18、;<p>  // image = new ImageIcon(image).getImage();</p><p>  //對開始按鈕的監(jiān)聽 </p><p>  this.startButton.addActionListener(</p><p>  new ActionListener()</p><p><b&g

19、t;  {</b></p><p>  public void actionPerformed(ActionEvent e)</p><p><b>  {</b></p><p>  boolean flag = true;</p><p>  MainPanel.this.setIsStart(flag)

20、;</p><p>  // System.out.println(MainPanel.this.getIsStart());</p><p>  MainPanel.this.obs.notifyObservers(MainPanel.this);</p><p>  // System.out.println("isStart");</

21、p><p><b>  }</b></p><p><b>  }</b></p><p><b>  );</b></p><p>  //對結(jié)束事件的監(jiān)聽</p><p>  this.exitButton.addActionListener(</

22、p><p>  new ActionListener()</p><p><b>  {</b></p><p>  public void actionPerformed(ActionEvent e)</p><p><b>  {</b></p><p>  MainPane

23、l.this.setExit(true);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  );</b></p><p><b>  }</b></p><p>  pu

24、blic void paint(Graphics g)</p><p><b>  {</b></p><p>  super.paint(g);</p><p>  Graphics2D g2 = (Graphics2D) g;</p><p>  g2.drawImage(image,0,0, this.getWid

25、th(), this.getHeight(),this);</p><p>  super.paintComponents(g);</p><p><b>  }</b></p><p>  public boolean getIsStart()</p><p><b>  {</b></p&

26、gt;<p>  return this.isStart;</p><p><b>  }</b></p><p>  public void setIsStart(boolean isStart)</p><p><b>  {</b></p><p>  this.isStart

27、= isStart;</p><p><b>  }</b></p><p>  public boolean isExit() {</p><p>  return isExit;</p><p><b>  }</b></p><p>  public void setE

28、xit(boolean isExit) {</p><p>  this.isExit = isExit;</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.2潛艇對象的實現(xiàn)</p><p>  public class

29、Submarine implements Runnable</p><p><b>  {</b></p><p>  private int X; //位置x,y</p><p>  private int Y;</p><p>  private int dx; //移動距離</p><p>

30、;  private int m; //方向:0代表向左 1代表向右</p><p>  private WarShip ship; </p><p>  private MyPanel panel;</p><p>  private int weight = 65; //默認(rèn)長度和寬度,數(shù)據(jù)來自圖片大小</p><p>  privat

31、e int height = 20;</p><p>  public boolean flag = false; //運行標(biāo)記</p><p>  private Image image; //圖片對象</p><p>  //private static int num = 0;</p><p>  public Submarin

32、e(WarShip ship,MyPanel panel)</p><p><b>  {</b></p><p>  this.ship = ship;</p><p>  this.panel = panel;</p><p>  this.dx = 1;</p><p>  //隨機產(chǎn)生潛艇

33、圖片和運動方向</p><p>  this.m = (int) (Math.random() * 2);</p><p>  if(this.m == 0)</p><p><b>  {</b></p><p>  Random r = new Random();</p><p>  int

34、 num = r.nextInt(3);</p><p>  if(num == 0)</p><p><b>  {</b></p><p>  image = Toolkit.getDefaultToolkit().getImage("imgs/潛艇1.png");//Toolkit.getDefaultToolkit(

35、).createImage( "C:\\1.JPG "),用異步的方式創(chuàng)建圖片。當(dāng)線程執(zhí)行到_img.getWidth(this)語句時,創(chuàng)建圖片的線程還沒準(zhǔn)備好圖片所以會返回-1。</p><p>  image = new ImageIcon(image).getImage();</p><p><b>  }</b></p>&

36、lt;p>  else if(num == 1)</p><p><b>  {</b></p><p>  image = Toolkit.getDefaultToolkit().getImage("imgs/潛艇2.png");</p><p>  image = new ImageIcon(image).getI

37、mage();</p><p><b>  }</b></p><p>  else if(num == 2 )</p><p><b>  {</b></p><p>  image = Toolkit.getDefaultToolkit().getImage("imgs/潛艇8.png

38、");</p><p>  image = new ImageIcon(image).getImage();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(this.m == 1)</p><p><

39、b>  {</b></p><p>  Random r1 = new Random();</p><p>  int num = r1.nextInt(4);</p><p>  if(num == 0 )</p><p><b>  {</b></p><p>  imag

40、e = Toolkit.getDefaultToolkit().getImage("imgs/潛艇3.png");</p><p>  image = new ImageIcon(image).getImage();</p><p><b>  }</b></p><p>  else if(num == 1 )</p

41、><p><b>  {</b></p><p>  image = Toolkit.getDefaultToolkit().getImage("imgs/潛艇4.png");</p><p>  image = new ImageIcon(image).getImage();</p><p><b

42、>  }</b></p><p>  else if(num == 2 )</p><p><b>  {</b></p><p>  image = Toolkit.getDefaultToolkit().getImage("imgs/潛艇6.png");</p><p>  im

43、age = new ImageIcon(image).getImage();</p><p><b>  }</b></p><p>  else if(num == 3 )</p><p><b>  {</b></p><p>  image = Toolkit.getDefaultToolki

44、t().getImage("imgs/潛艇7.png");</p><p>  image = new ImageIcon(image).getImage();</p><p><b>  }</b></p><p><b>  }</b></p><p>  this.weig

45、ht = image.getWidth(panel);</p><p>  this.height = image.getHeight(panel);</p><p>  if(m == 0)</p><p><b>  {</b></p><p>  this.X = this.panel.getWidth() -

46、 this.weight;</p><p><b>  }</b></p><p>  if(m == 1)</p><p><b>  {</b></p><p>  this.X = 0;</p><p><b>  }</b></p>

47、<p>  Random ry = new Random();</p><p>  int y1 = ry.nextInt(panel.getHeight()) + 180;</p><p>  while((y1+this.getHeight()) >= panel.getHeight())</p><p><b>  {</b

48、></p><p>  y1 = ry.nextInt(panel.getHeight()) + 180;</p><p><b>  }</b></p><p>  this.Y = y1;</p><p>  //計時器每隔一段時間產(chǎn)生魚雷對象</p><p>  TimeManager

49、2 tm2 = new TimeManager2(this,this.panel,this.ship,this.panel.getTorpedoArray());</p><p>  Thread t = new Thread(tm2);</p><p>  t.start();</p><p><b>  }</b></p>

50、<p>  public void drawSubmarine(Graphics2D g) </p><p><b>  {</b></p><p>  g.drawImage(image,this.X, this.Y, panel); </p><p><b>  }</b></p><p&

51、gt;  public void moveLeft()</p><p><b>  {</b></p><p>  //System.out.println("潛水艇運動");</p><p>  this.X -= dx;</p><p>  //System.out.println(this.X)

52、;</p><p>  this.panel.repaint();</p><p>  if(this.X < 0)</p><p><b>  {</b></p><p>  this.flag = true;</p><p><b>  }</b></p>

53、;<p><b>  }</b></p><p>  public void moveright()</p><p><b>  {</b></p><p>  this.X += dx;</p><p>  //this.panel.repaint();</p><

54、;p>  if(this.X > this.panel.getWidth())</p><p><b>  {</b></p><p>  this.flag = true;</p><p><b>  }</b></p><p><b>  }</b></p

55、><p>  public void run() </p><p><b>  {</b></p><p>  //System.out.println("線程激活");</p><p>  while(!flag)</p><p><b>  {</b>&

56、lt;/p><p>  //System.out.println("222");</p><p>  if(this.m == 0)</p><p><b>  {</b></p><p>  this.moveLeft();</p><p><b>  }</b&

57、gt;</p><p>  if(this.m == 1)</p><p><b>  {</b></p><p>  this.moveright();</p><p><b>  }</b></p><p>  if(this.panel.isStop())</p&

58、gt;<p><b>  {</b></p><p>  synchronized(MyPanel.subLock)</p><p><b>  {</b></p><p><b>  try</b></p><p><b>  {</b>&

59、lt;/p><p>  MyPanel.subLock.wait();</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  e.printStackTrace();</

60、p><p>  this.flag = true;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  try</b></p>

61、<p><b>  {</b></p><p>  Thread.sleep(10);</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>

62、  e.printStackTrace();</p><p>  this.flag = true;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public

63、 int getX() {</p><p><b>  return X;</b></p><p><b>  }</b></p><p>  public void setX(int x) {</p><p><b>  X = x;</b></p><p

64、><b>  }</b></p><p>  public int getY() {</p><p><b>  return Y;</b></p><p><b>  }</b></p><p>  public void setY(int y) {</p>

65、<p><b>  Y = y;</b></p><p><b>  }</b></p><p>  public int getDx() {</p><p>  return dx;</p><p><b>  }</b></p><p>

66、;  public void setDx(int dx) {</p><p>  this.dx = dx;</p><p><b>  }</b></p><p>  public int getWeight() {</p><p>  return weight;</p><p><b&

67、gt;  }</b></p><p>  public void setWeight(int weight) {</p><p>  this.weight = weight;</p><p><b>  }</b></p><p>  public int getHeight() {</p>

68、<p>  return height;</p><p><b>  }</b></p><p>  public void setHeight(int height) {</p><p>  this.height = height;</p><p><b>  }</b></p&

69、gt;<p>  3.3潛艇爆炸的實現(xiàn)</p><p><b>  /*</b></p><p>  * 潛艇被擊中的爆炸效果,通過圖片顯示</p><p><b>  */</b></p><p>  public class Hit implements Runnable <

70、/p><p><b>  {</b></p><p>  private MyPanel panel; //主面板</p><p>  private Image image; //圖片</p><p>  private int liveTime = 500; //爆炸效果顯示的時間默認(rèn)為500毫秒<

71、;/p><p>  private int beginX = 0; //位置 x y</p><p>  private int beginY = 0;</p><p>  private boolean isRunning = false; //游戲是否正在運行標(biāo)志</p><p>  public Hit(

72、int x,int y,MyPanel panel)</p><p><b>  {</b></p><p>  this.beginX = x;</p><p>  this.beginY = y;</p><p>  this.panel = panel;</p><p>  this.im

73、age = Toolkit.getDefaultToolkit().getImage("imgs/炸彈效果.png");</p><p>  this.image = new ImageIcon(this.image).getImage();</p><p><b>  }</b></p><p>  public vo

74、id drawHitting(Graphics2D g)</p><p><b>  {</b></p><p>  g.drawImage(this.image, this.beginX,this.beginY,this.panel);</p><p><b>  }</b></p><p>  

75、public void run()</p><p><b>  {</b></p><p>  while(!this.isRunning)</p><p><b>  {</b></p><p><b>  try {</b></p><p>  Th

76、read.sleep(this.liveTime);</p><p>  } catch (InterruptedException e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }<

77、/b></p><p>  this.isRunning = true;</p><p><b>  }</b></p><p><b>  }</b></p><p>  public boolean isRunning() {</p><p>  return is

78、Running;</p><p><b>  }</b></p><p>  public void setRunning(boolean isRunning) {</p><p>  this.isRunning = isRunning;</p><p><b>  }</b></p>

79、<p><b>  }</b></p><p><b>  3.4游戲說明</b></p><p><b>  /*</b></p><p>  * *游戲規(guī)則的對話框,提示游戲規(guī)則信息</p><p><b>  */</b></p&

80、gt;<p>  public class HelpDialog extends JDialog implements MouseMotionListener,MouseListener</p><p><b>  {</b></p><p>  private static final long serialVersionUID = 1L;</p

81、><p>  protected JFrame frame1; </p><p>  private MyPanel panel;</p><p>  private boolean flag = false;</p><p>  private boolean isDraw = false;</p><

82、;p>  private boolean isOutDraw = false;</p><p>  public HelpDialog(Frame frame,boolean modal,MyPanel panel)</p><p><b>  {</b></p><p>  super(frame,modal);</p>

83、<p>  this.panel = panel;</p><p>  this.addMouseMotionListener(this);</p><p>  this.addMouseListener(this);</p><p>  this.setLocation(frame.getBounds().x + 180,frame.getBound

84、s().y + 200);</p><p>  this.setSize(300, 200);</p><p>  this.setUndecorated(true); </p><p>  this.setVisiableRigeon(this.getWidth(), this.getHeight());</p><p>  this.

85、setVisible(true);</p><p><b>  }</b></p><p>  public void paint(Graphics g)</p><p><b>  {</b></p><p>  super.paint(g);</p><p>  Grap

86、hics2D g2 = (Graphics2D) g;</p><p>  //g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING , RenderingHints.VALUE_ANTIALIAS_ON);</p><p>  Point2D start = new Point2D.Float(this.getWidth()/2, 0);

87、</p><p>  Point2D end = new Point2D.Float(this.getWidth()/2, this.getHeight());</p><p>  float[] dist = {0.05f,1.0f};</p><p>  Color[] colors = {new Color(58,95,205), Color.CYAN};&l

88、t;/p><p>  LinearGradientPaint p =</p><p>  new LinearGradientPaint (start,end, dist, colors);</p><p>  g2.setPaint(p);</p><p>  g2.fillRect(0,0, this.getWidth(), this.ge

89、tHeight());</p><p>  String title = new String("游戲規(guī)則");</p><p>  g2.setFont(new Font("華文行楷",Font.BOLD,25));</p><p>  g2.setColor(Color.yellow);</p><p&

90、gt;  BasicGraphicsUtils.drawString(g2, title, 100, 90, 50);</p><p>  String context = new String("按 <- 或 A 鍵 控制軍艦向左");</p><p>  g2.setFont(new Font("華文行楷",Font.BOLD,15));&

91、lt;/p><p>  g2.setColor(Color.yellow);</p><p>  BasicGraphicsUtils.drawString(g2, context, 100, 50, 100);</p><p>  String context1 = new String("按 -> 或 D 鍵 控制軍艦向右");</p

92、><p>  g2.setFont(new Font("華文行楷",Font.BOLD,15));</p><p>  g2.setColor(Color.yellow);</p><p>  BasicGraphicsUtils.drawString(g2, context1, 100, 50, 120);</p><p>

93、  String context2 = new String("按空格鍵扔炸彈");</p><p>  g2.setFont(new Font("華文行楷",Font.BOLD,15));</p><p>  g2.setColor(Color.yellow);</p><p>  BasicGraphicsUtils.dr

94、awString(g2, context2, 100, 50, 140);</p><p>  //g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING , RenderingHints.VALUE_ANTIALIAS_ON);</p><p>  this.repaintShape();</p><p><b

95、>  } </b></p><p><b>  3.5時間計時器</b></p><p>  3.5.1計時產(chǎn)生潛艇</p><p>  public class TimeManager implements Runnable</p><p><b>  {</b></p&

96、gt;<p>  private WarShip ship;</p><p>  private MyPanel panel;</p><p>  private int speed = 1000;</p><p>  public TimeManager(WarShip ship,MyPanel panel)</p><p

97、><b>  {</b></p><p>  this.ship = ship;</p><p>  this.panel = panel;</p><p><b>  }</b></p><p>  public void run() </p><p><

98、b>  {</b></p><p>  Random r = new Random();</p><p>  while(this.panel.isRunning())</p><p><b>  {</b></p><p>  if(this.panel.isStop() == true)</p

99、><p><b>  {</b></p><p>  //System.out.println("777");</p><p>  synchronized(MyPanel.subLock)</p><p><b>  {</b></p><p><b&

100、gt;  try</b></p><p><b>  {</b></p><p>  MyPanel.subLock.wait();</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>

101、;  {</b></p><p>  e.printStackTrace();</p><p>  //this.flag = true;</p><p>  this.panel.endGame();</p><p><b>  }</b></p><p><b>  }&

102、lt;/b></p><p><b>  }</b></p><p>  Submarine sm = new Submarine(this.ship,this.panel);</p><p>  this.panel.getSubmarineArray().add(sm);</p><p>  Thread t

103、 = new Thread(sm);</p><p>  t.start();</p><p><b>  try</b></p><p><b>  {</b></p><p>  Thread.sleep(this.speed + r.nextInt(this.speed * 3));</

104、p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  e.printStackTrace();</p><p><b>  }</b></p>

105、<p><b>  }</b></p><p><b>  }</b></p><p>  public int getSpeed() {</p><p>  return speed;</p><p><b>  }</b></p><p>

106、  public void setSpeed(int speed) {</p><p>  this.speed = speed;</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.5.2計時產(chǎn)生魚雷</p><p>  

107、public class TimeManager2 implements Runnable</p><p><b>  {</b></p><p>  private WarShip ship;</p><p>  private ArrayList<Torpedo> torpedoArray ;</p><p&

108、gt;  private MyPanel panel;</p><p>  private Submarine sm;</p><p>  public TimeManager2(Submarine sm,MyPanel panel,WarShip ship,ArrayList<Torpedo> torpedoArray)</p><p><b&g

109、t;  {</b></p><p>  this.sm = sm;</p><p>  this.torpedoArray = torpedoArray;</p><p>  this.panel = panel;</p><p>  this.ship = ship;</p><p>&l

110、t;b>  }</b></p><p>  public void run() </p><p><b>  {</b></p><p>  Random r = new Random();</p><p>  while(!this.sm.flag)</p><p><b

111、>  {</b></p><p>  //System.out.println("333");</p><p>  if(this.panel.isStop() == true)</p><p><b>  {</b></p><p>  synchronized(MyPanel.s

112、ubLock)</p><p><b>  {</b></p><p>  //System.out.println("stop");</p><p><b>  try</b></p><p><b>  {</b></p><p>

113、;  MyPanel.subLock.wait();</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  e.printStackTrace();</p><p>  /

114、/this.flag = true;</p><p>  this.panel.endGame();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  Torped

115、o tp = new Torpedo(this.panel,this.ship,this.sm);</p><p>  //System.out.println("1111111111111");</p><p>  this.torpedoArray.add(tp);</p><p>  Thread t = new Thread(tp);&l

116、t;/p><p>  t.start();</p><p><b>  try</b></p><p><b>  {</b></p><p>  int time = r.nextInt(4000) + 2000;</p><p>  Thread.sleep(time);&l

117、t;/p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  e.printStackTrace();</p><p><b>  }</b></p>

118、;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3.6 讀取文件,記錄分?jǐn)?shù)</p><p>  public class InputDialog extends JDialog&

119、lt;/p><p><b>  {</b></p><p><b>  /**</b></p><p><b>  * </b></p><p><b>  */</b></p><p>  private static final l

120、ong serialVersionUID = 1L;</p><p>  private JButton submit; //提交按鈕</p><p>  private JLabel text1;</p><p>  private JLabel text2;</p><p>  private JLabel text3;</p&g

121、t;<p>  private JTextField field;</p><p>  private MyPanel panel;</p><p>  private JPanel centerPanel;</p><p>  private JPanel northPanel;</p><p>  priva

122、te JPanel southPanel;</p><p>  public InputDialog(Frame frame,boolean modal,MyPanel panel)</p><p><b>  {</b></p><p>  super(frame,modal);</p><p>  this.p

123、anel = panel;</p><p>  this.submit = new JButton("提交");</p><p>  this.text1 = new JLabel("恭喜您進入前十!");</p><p>  this.text1.setFont(new Font("楷體",Font.BO

124、LD,15));</p><p>  this.text1.setHorizontalAlignment(JLabel.CENTER);</p><p>  this.text1.setVerticalAlignment(JLabel.BOTTOM);</p><p>  this.text1.setPreferredSize(new Dimension(300,9

125、0));</p><p>  this.text2 = new JLabel("請輸入您的姓名:");</p><p>  this.text2.setFont(new Font("楷體",Font.BOLD,12));</p><p>  this.text2.setHorizontalAlignment(JLabel.CE

126、NTER);</p><p>  this.text2.setPreferredSize(new Dimension(130,20));</p><p>  this.text3 = new JLabel("總分:"+ this.panel.getScore());</p><p>  this.text3.setFont(new Font(&q

127、uot;楷體",Font.BOLD,12));</p><p>  this.text3.setHorizontalAlignment(JLabel.CENTER);</p><p>  this.text3.setPreferredSize(new Dimension(300,30));</p><p>  this.field = new JTextF

128、ield();</p><p>  this.field.setFont(new Font("楷體",Font.BOLD,15));</p><p>  this.field.setHorizontalAlignment(JLabel.CENTER);</p><p>  this.field.setPreferredSize(new Dimen

129、sion(70,20));</p><p>  this.submit.setBackground(Color.orange);</p><p>  this.submit.setHorizontalAlignment(JLabel.CENTER);</p><p>  this.submit.setPreferredSize(new Dimension(80,30

130、));</p><p>  this.submit.setForeground(new Color(61,145,64));</p><p>  this.submit.setFont(new Font(" ",0,20));</p><p>  this.centerPanel = new JPanel(new FlowLayout(5));&

131、lt;/p><p>  this.centerPanel.setPreferredSize(new Dimension(200,50));</p><p>  this.centerPanel.add(this.text2);</p><p>  this.centerPanel.add(this.field);</p><p>  this.n

132、orthPanel = new JPanel(new GridLayout(2,1));</p><p>  this.northPanel.setPreferredSize(new Dimension(300,90));</p><p>  this.northPanel.add(this.text1);</p><p>  this.northPanel.add

133、(this.text3);</p><p>  JLabel southHelp1 = new JLabel();</p><p>  southHelp1.setPreferredSize(new Dimension(100, 50));</p><p>  JLabel southHelp2 = new JLabel();</p><p>

134、;  southHelp2.setPreferredSize(new Dimension(100, 50));</p><p>  this.southPanel = new JPanel();</p><p>  this.southPanel.setPreferredSize(new Dimension(300,70));</p><p>  this.sout

135、hPanel.add(southHelp1);</p><p>  this.southPanel.add(this.submit);</p><p>  this.southPanel.add(southHelp2);</p><p>  JLabel east = new JLabel();</p><p>  east.setPrefe

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論