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

📄 floor.java

📁 模拟电梯程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*文件名:Floor.java
  类名:Floor.class
  功能:生成楼层的布局,以及乘客小人在楼层里移动
*/
import java.awt.*;
import java.applet.Applet;
import java.applet.*;
//Floor 类定义
public class Floor extends Applet
    implements Runnable
{
//声明Floor类成员变量类型
    public AudioClip stepsound;//乘客走路的声音
    public boolean occupied1;//乘客1是否在该楼层
    public boolean occupied2;//乘客2是否在该楼层
    public boolean occupied3;//乘客3是否在该楼层
    public boolean occupied4;//乘客4是在否该楼层
    public boolean occupied5;//乘客5是否在该楼层
    public boolean occupied6;//乘客6是否在该楼层
    public boolean occupied7;//乘客7是否在该楼层
    public boolean occupied8;//乘客8是否在该楼层
    public boolean occupied9;//乘客9是否在该楼层
    public boolean occupied0;//乘客0是否在该楼层
    public boolean moving;//乘客在楼层的移动
    public int destination;//目的地是几层
    public int elevator_door;//电梯门
    public int leave_elevator_door;//离开电梯门
    public int location;//位置
    public int xPos1;//
    public int xPos2;
    public int xPos3;
    public int xPos4;
    public int xPos5;
    public int xPos6;
    public int xPos7;
    public int xPos8;
    public int xPos9;
    public int xPos0;
    public int who;
    public int personDestination;//乘客的目的地
    private Elevator elevator;//电梯在大楼里
    private Thread thread;//线程
    private Image floor;//电梯图像
    private Image person1;//第1个乘客的图像
    private Image person2;//第2个乘客的图像
    private Image person3;//第3个乘客的图像
    private Image person4;//第4个乘客的图像
    private Image person5;//第5个乘客的图像
    private Image person6;//第6个乘客的图像
    private Image person7;//第7个乘客的图像
    private Image person8;//第8个乘客的图像
    private Image person9;//第9个乘客的图像
    private Image person0;//第10个乘客的图像
    private Applet applet;

    public Floor(Applet applet1, Elevator elevator1)
    {//初始化,10个乘客一开始都没在电梯里
        occupied1 = false;
        occupied2 = false;
        occupied3 = false;
        occupied4 = false;
        occupied5 = false;
        occupied6 = false;
        occupied7 = false;
        occupied8 = false;
        occupied9 = false;
        occupied0 = false;
        moving = false;
        elevator_door = 1;//进入电梯
        leave_elevator_door = 2;//离开电梯
        who = 1;//第一个乘客
        location = 1;//电梯位于第一层
        //十个乘客的起始位置
        xPos1 = -30;
        xPos2 = -30;
        xPos3 = -30;
        xPos4 = -30;
        xPos5 = -30;
        xPos6 = -30;
        xPos7 = -30;
        xPos8 = -30;
        xPos9 = -30;
        xPos0 = -30;
        stepsound = applet1.getAudioClip(applet1.getDocumentBase(), "sound/thin.bell.au");//电梯的声音
        person1 = applet1.getImage(applet1.getDocumentBase(), "image/girl1.gif");//获取乘客1的图像
        person2 = applet1.getImage(applet1.getDocumentBase(), "image/girl2.gif");//获取乘客2的图像
        person3 = applet1.getImage(applet1.getDocumentBase(), "image/girl3.gif");//获取乘客3的图像
        person4 = applet1.getImage(applet1.getDocumentBase(), "image/girl4.gif");//获取乘客4的图像
        person5 = applet1.getImage(applet1.getDocumentBase(), "image/girl5.gif");//获取乘客5的图像
        person6 = applet1.getImage(applet1.getDocumentBase(), "image/girl6.gif");//获取乘客6的图像
        person7 = applet1.getImage(applet1.getDocumentBase(), "image/girl7.gif");//获取乘客7的图像
        person8 = applet1.getImage(applet1.getDocumentBase(), "image/girl8.gif");//获取乘客8的图像
        person9 = applet1.getImage(applet1.getDocumentBase(), "image/girl9.gif");//获取乘客9的图像
        person0 = applet1.getImage(applet1.getDocumentBase(), "image/girl0.gif");//获取乘客10的图像
        floor = applet1.getImage(applet1.getDocumentBase(), "image/floor1.jpg");//获取楼层的图像
        elevator = elevator1;
        applet = applet1;
    }
//构造方法
    public void occupy1()
    {//乘客1在该楼层
        if(!occupied1)
        {
            occupied1 = true;
            repaint();
        }
    }
    public void occupy2()
    {
        if(!occupied2)
        {
            occupied2 = true;
            repaint();
        }
    }
    
    public void occupy3()
    {
        if(!occupied3)
        {
            occupied3 = true;
            repaint();
        }
    }
    public void occupy4()
    {
        if(!occupied4)
        {
            occupied4 = true;
            repaint();
        }
    }
    public void occupy5()
    {
        if(!occupied5)
        {
            occupied5 = true;
            repaint();
        }
    }
    public void occupy6()
    {
        if(!occupied6)
        {
            occupied6 = true;
            repaint();
        }
    }
    public void occupy7()
    {
        if(!occupied7)
        {
            occupied7 = true;
            repaint();
        }
    }
    public void occupy8()
    {
        if(!occupied8)
        {
            occupied8 = true;
            repaint();
        }
    }
    public void occupy9()
    {
        if(!occupied9)
        {
            occupied9 = true;
            repaint();
        }
    }
    public void occupy0()
    {
        if(!occupied0)
        {
            occupied0 = true;
            repaint();
        }
    }

    public void unoccupy1()
    {
        if(occupied1)
        {
            occupied1 = false;
            repaint();
        }
    }
    public void unOccupy2()
    {
        if(occupied2)
        {
            occupied2 = false;
            repaint();
        }
    }
    
    public void unOccupy3()
    {
        if(occupied3)
        {
            occupied3 = false;
            repaint();
        }
    }
    public void unOccupy4()
    {
        if(occupied4)
        {
            occupied4 = false;
            repaint();
        }
    }
    public void unOccupy5()
    {
        if(occupied5)
        {
            occupied5 = false;
            repaint();
        }
    }
    public void unOccupy6()
    {
        if(occupied6)
        {
            occupied6 = false;
            repaint();
        }
    }
    public void unOccupy7()
    {
        if(occupied7)
        {
            occupied7 = false;
            repaint();
        }
    }
    public void unOccupy8()
    {
        if(occupied8)
        {
            occupied8 = false;
            repaint();
        }
    }
    public void unOccupy9()
    {
        if(occupied9)
        {
            occupied9 = false;
            repaint();
        }
    }
    public void unOccupy0()
    {
        if(occupied0)
        {
            occupied0 = false;
            repaint();
        }
    }

    public void pause(int i)
    {
        try
        {
            Thread.sleep(i);
            return;
        }
        catch(InterruptedException interruptedexception)//例外处理
        {
            return;
        }
    }

    public void setDestination(int i,int w)
    {
        destination = i;//目的地是第i层
        who = w;//第w位乘客
        start();//调用启动方法
    }
//电梯开始运行
    public void start()
    {
        thread = new Thread(this);
        thread.start();
    }
//电梯停止运行
    public void stop()
    {
        if(thread != null)
        {
            thread.stop();
            thread = null;
        }
    }
//
    public void run()
    {
    	if(who==1)
    	{
        	if(destination == elevator_door)
        	{
        	moving = true;
            	while(xPos1 < 190) 
            	{
                	xPos1++;
                	repaint();
                	stepsound.play();
                	pause(20);
            	}
            	cleanUp();
        	}
        	if(destination == leave_elevator_door)
        	{
            		moving = true;
            		while(xPos1 > 1) 
            		{
                		xPos1--;

⌨️ 快捷键说明

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