60 lines
1.4 KiB
Java
60 lines
1.4 KiB
Java
package gui;
|
|
import javax.swing.*;
|
|
import java.awt.*;
|
|
import simulation.Elevator;
|
|
import commandSystem.Direction;
|
|
|
|
|
|
@SuppressWarnings("serial")
|
|
class ElevatorCanvas extends JPanel {
|
|
private final static int WIDTH = 40;
|
|
private final static int HEIGHT = 50;
|
|
private final static Dimension DIMENSIONS = new Dimension(WIDTH, 300);
|
|
|
|
private Elevator elevator;
|
|
|
|
public ElevatorCanvas(Elevator elevator) {
|
|
this.elevator = elevator;
|
|
}
|
|
|
|
@Override
|
|
public Dimension getMinimumSize() {
|
|
return DIMENSIONS;
|
|
}
|
|
@Override
|
|
public Dimension getPreferredSize() {
|
|
return DIMENSIONS;
|
|
}
|
|
@Override
|
|
public Dimension getMaximumSize() {
|
|
return DIMENSIONS;
|
|
}
|
|
|
|
@Override
|
|
public void paintComponent(Graphics g) {
|
|
super.paintComponent(g);
|
|
if (elevator.getEmergency()) {
|
|
g.setColor(Color.RED);
|
|
}
|
|
else if (elevator.getStoppingNextFloor()) {
|
|
g.setColor(Color.BLUE);
|
|
}
|
|
else if (elevator.getDirection() == Direction.NONE) {
|
|
g.setColor(Color.GREEN);
|
|
}
|
|
else {
|
|
g.setColor(Color.BLACK);
|
|
}
|
|
g.fillRect(0, (int) DIMENSIONS.getHeight() - HEIGHT - (int) (((int) DIMENSIONS.getHeight() - HEIGHT) * elevator.getHeight()), WIDTH, HEIGHT);
|
|
|
|
g.setColor(Color.GRAY);
|
|
int nbFloors = elevator.getNbFloors();
|
|
for (int i = 0; i < nbFloors; i++) {
|
|
int y = HEIGHT + i * ((int) (DIMENSIONS.getHeight() - HEIGHT) / (nbFloors - 1));
|
|
g.fillRect(0, y-1, WIDTH, 3);
|
|
}
|
|
|
|
Toolkit.getDefaultToolkit().sync();
|
|
}
|
|
}
|