birdpanel.java

来自「本程序是用多线程实现了打飞鸟游戏程序」· Java 代码 · 共 82 行

JAVA
82
字号
/*
 * birdpanel.java
 *
 * Created on 2001年12月27日, 下午3:43
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package shoot_birds;

import java.awt.*;
//import java.awt.event.MouseMotionListener;
import java.util.ArrayList;
import javax.swing.*;

/**
 *
 * @author open
 */
public class birdpanel extends JPanel
{
   /**
      Add a ball to the panel.
      @param b the ball to add
   */
   public birdpanel()
   {
      // 注册鼠标点击的注册器,在这里主要是单击,单击表示射击
	   MouseListener listener=new MouseListener(this);
      // 添加鼠标的移动注册器,在这里用作瞄准
       MouseMove move=new MouseMove(this);
       this.addMouseListener(listener);
       this.addMouseMotionListener(move);
   }
   public void add(bird b)
   {
      birds.add(b);
   }

   public void paintComponent(Graphics g)
   {
      
      super.paintComponent(g);
      //加载背景图片
      String a = System.getProperty("user.dir");
      ImageIcon icon=new ImageIcon(a+"\\shoot_birds\\images\\background.jpg");
      
      this.setBackground(Color.BLUE);
      Graphics2D g2 = (Graphics2D) g;
      g2.drawImage(icon.getImage(),0,0,icon.getIconWidth(),icon.getIconHeight(),Color.CYAN,this);
      //设置画笔粗细
      g2.setStroke(new BasicStroke(5.0f));
      //设置画笔颜色
      g2.setColor(Color.RED);
      //画直线,用于瞄准
      g2.drawLine(x1,y1,x2,y2);
   
      
     
      for (bird b : birds)
      {
         if(!b.isLeave())
    	  //g2.fill(b.getShape());
        	 g2.drawImage(b.getImage(),b.getX(),b.getY(),b.getImageX(),b.getImageY(),this); 
      }
   }
   //返回图中的所有鸟的实例
   public ArrayList<bird> getList()
   {
       return birds;
   }
   public void drawLine(int x,int y)
   {
       x2=x;
       y2=y;
       repaint();
   }
   private int x1=130,y1=260,x2=130,y2=260;//直线是在一个半园范围内,线段端点的初始值
   private ArrayList<bird> birds = new ArrayList<bird>();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?