Block.java
上传用户:penghbff
上传日期:2007-04-16
资源大小:32k
文件大小:3k
源码类别:

射击游戏

开发平台:

Java

  1. import java.awt.event.*;
  2. import java.awt.*;
  3. import javax.swing.*;
  4. import javax.swing.border.*;
  5. public class Block extends JButton implements MouseListener
  6.   boolean 雷=false,
  7.           周围无雷=true;
  8.   int 周围的雷数=0;
  9.   int 探雷标记=-1;
  10.   JLabel label;
  11.   Point p;
  12.   public Block()
  13.   { 
  14.     label=new JLabel(); 
  15.     setBorder(BorderFactory.createMatteBorder(1,
  16.                                               1,
  17.                                               0,
  18.                                               0,
  19.                                             Color.lightGray));
  20.    label.setBorder(BorderFactory.createMatteBorder(1,
  21.                                               1,
  22.                                               0,
  23.                                               0,
  24.                                             Color.lightGray));
  25.     label.setHorizontalAlignment(JLabel.CENTER);
  26.     label.setLayout(new BorderLayout());
  27.     label.add(this,BorderLayout.CENTER);
  28.     p=new Point(0,0);
  29.     addMouseListener(this);
  30.    
  31.   } 
  32.   public void 设置是否是雷(boolean b)
  33.   { 
  34.     雷=b;
  35.   }
  36.   public boolean 判断是否是雷()
  37.   {
  38.     return 雷;
  39.   }      
  40.   public void 设置是雷时的图标(Icon icon)
  41.   {
  42.     label.setIcon(icon);
  43.   }
  44.   public void 设置周围无雷时的图标(Icon icon)
  45.   { 
  46.    label.setIcon(icon);
  47.   }
  48.   public void 设置周围有雷时的名字(String name)
  49.   { 
  50.     label.setText(name);
  51.   }
  52.   public String 获取名字()
  53.   { 
  54.     return label.getText();
  55.   }
  56.   public void 设置周围的雷数(int n)
  57.   {
  58.      周围的雷数=n;
  59.   }
  60.   public int 获取周围的雷数()
  61.   {
  62.     return 周围的雷数;
  63.   }
  64.   public void 设置在雷区中的位置(int i,int j)
  65.   {
  66.     p=new Point(i,j);
  67.   }
  68.  public Point 获取在雷区中的位置()
  69.   {
  70.     return p; 
  71.   }
  72.  public int 获取探雷标记()
  73.   {
  74.    return 探雷标记;
  75.   }
  76.  public void mousePressed(MouseEvent e)
  77.   { 
  78.     boolean right=SwingUtilities.isRightMouseButton(e);
  79.    
  80.     if((right==true)&&(this.isOpaque()==true))
  81.     { 
  82.       
  83.       探雷标记=(探雷标记+1)%3;
  84.       repaint();
  85.     }  
  86.   }
  87.  public void paintComponent(Graphics g)
  88.   {
  89.       super.paintComponent(g);
  90.       if(探雷标记==0)
  91.        {
  92.          g.setColor(Color.red);
  93.          g.fillRect(6,4,8,6);
  94.          g.drawLine(13,10,14,18); 
  95.        }
  96.       if(探雷标记==1)
  97.        {
  98.         g.setColor(Color.blue);
  99.         g.drawString("?",6,15);
  100.        }
  101.    }
  102.  public void mouseEntered(MouseEvent e)
  103.   {}
  104.  public void mouseReleased(MouseEvent e)
  105.   {}
  106.  public void mouseExited(MouseEvent e)
  107.   {}
  108.  public void mouseClicked(MouseEvent e)
  109.   {}
  110. }