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(); } }