📄 tubepanel.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 + -