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

📄 tubepanel.java

📁 java 电梯调度程序 5部电梯 20层楼
💻 JAVA
字号:

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;


public class TubePanel extends JPanel{
	private int curFloor= 1;
	private short  curStatus = 0; //0 ---表示电梯静止。 1----表示电梯运动, 2--表示电梯里面没有人了
	private final static int  elevatorWidth  = 48;
	private final static int  elevatorHeight = 19;
	public void setCurFloor( int cf){
		if( cf <1 || cf > 20){
			return ;
		}
		curFloor = cf;
		this.repaint();
	}
	public void closeDoor(){
		curStatus = 1;
		this.repaint();
		System.out.println(" door close");
	}
	public void openDoor (){
		curStatus = 0;
		this.repaint();
		System.out.println( " door Open");
	}
	public void allUnload(){
		curStatus = 2;
		this.repaint();
		System.out.println( " all unload");
	}
	public TubePanel(){
		this.setSize(52, 402);
		this.setBackground( new Color(0,255,0));	
	}
	public void paintComponent(Graphics g){
		super.paintComponents(g);
		Graphics2D g2 = (Graphics2D)g;
		int curFloorY = (20-curFloor)*20;
		//画通道
		Rectangle2D tube = new Rectangle2D.Double(0, 0,50, 400);
		g2.draw(tube);
		g2.fill(tube);
		//画绳索
		g2.setColor( new Color(255,0,0) );
		Rectangle2D rope  = new Rectangle2D.Double( elevatorWidth/2,0 ,2, curFloorY ) ;
		g2.draw(rope);
		
		Rectangle2D elevator = new Rectangle2D.Double(1, curFloorY-1, elevatorWidth, elevatorHeight);
		if( curStatus == 1 ){ //电梯运行
			g2.setColor( new Color(255,0,0));
			g2.fill(elevator);
			g2.setColor( new Color(0,255,0));
			g2.draw(elevator);
			g2.setColor( new Color(0,0,0));
			g2.setFont(new Font("Times New Roman", Font.BOLD, 15));
			g2.drawString(""+curFloor,  elevatorWidth/2-7, curFloorY+elevatorHeight*2/3);
		}else if ( curStatus == 0 ){//0 ---表示电梯静止
			g2.setColor( new Color(0,255,0));
			g2.fill(elevator);
			g2.setColor( new Color(255,0,0));
			g2.draw(elevator);
			g2.setColor( new Color(0,0,0));
			g2.setFont(new Font("Times New Roman", Font.PLAIN, 15));
			g2.drawString("waiting...",  5, curFloorY+elevatorHeight*2/3);
		}else {// 2--表示电梯里面没有人了
			g2.setColor( new Color(0,0,255));
			g2.fill(elevator);
			g2.setColor( new Color(255,0,0));
			g2.draw(elevator);
			g2.setColor( new Color(0,0,0));
			g2.setFont(new Font("Times New Roman", Font.PLAIN, 15));
			g2.drawString("all free",  5, curFloorY+elevatorHeight*2/3);
		}
	}
}

⌨️ 快捷键说明

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