⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 planecontainer.java

📁 可以支持4个玩家同时走
💻 JAVA
字号:
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.net.URL;
import java.awt.AWTEvent;
import java.util.EventListener;
import java.awt.Image;

class PlaneEvent extends AWTEvent    //定义飞机构件的事件
{
   Object plane;  //返回飞机的构件。
   
   public PlaneEvent(Planeable source,Object plane)  
   {
     super(source,-1);  //得到事件源
     this.plane=plane;
   }
   
   public Planeable getPlaneable()  //返回事件源方法
   {
     return (Planeable)source;
   }
   
   public Object planes()   //返回飞机构件方法
   {
     return plane;
   }
   
}

interface PlaneListener extends EventListener   //定义飞机的监听者方法
{
  void planePerformed(PlaneEvent e);
}

interface Planeable      //定义飞机的加载与移除监听者方法
{
  public Object getPlane();   //返回飞机的构件的方法 
  public void addPlaneListener(PlaneListener I);
  public void removePlaneListener(PlaneListener I);
}

//飞机构件类
public class PlaneContainer extends Component implements Planeable
{
  protected int pp,dd;                  //飞机所属玩家数以及飞机的ID
  
  private Object planes=new Object();   //返回飞机的事件方法
  
  private Vector listener;                   //向量变量,用来循环注册的监听者
  PlaneEvent e=new PlaneEvent(this,this);   //定义飞机事件对象,将构件注册为事件源
  
  //飞机构件的构造方法
  public PlaneContainer(int x,int y)
  { 
    pp=x; dd=y;     //得到当前玩家数以及玩家的飞机的ID  
    addMouseListener(new MouseAdapter(){
            public void mousePressed(MouseEvent event)   //用鼠标事件来驱动飞机事件
            {
              processPlaneEvent(e);          //调用飞机监听者执行方法
            }
        });
   }
    
    public Object getPlane()     //返回飞机构件方法
    {
      planes=this;
      return planes;
    }
    
    public void addPlaneListener(PlaneListener I)   //加载监听者方法
    {
      listener.addElement(I);
    }
    
    public void removePlaneListener(PlaneListener I)   //移除监听者方法
    {
      listener.removeElement(I);
    }
    
    protected synchronized void processPlaneEvent(PlaneEvent event)  //监听者处理方法
    {
      Enumeration e=listener.elements();
      while(e.hasMoreElements())        //用向量来循环飞机的注册监听者
         {
           PlaneListener I=(PlaneListener)e.nextElement();
           
           I.planePerformed(event);     //调用监听者的注册方法
         }
    }
}
          
   
   
   
   

⌨️ 快捷键说明

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