This repository has been archived on 2019-10-19. You can view files and clone it, but cannot push or open issues or pull requests.
projet-gl/src/gui/ElevatorCanvas.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();
}
}