import [Link].
*;
import [Link].*;
import [Link].*;
public class elevat extends JApplet {
private Elevator elevator = new Elevator();
public void init() {
ButtonPanel lb = new ButtonPanel(elevator);
setLayout(new BorderLayout());
add(lb, [Link]);
add(elevator, [Link]);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Elevator Simulation");
elevat applet = new elevat();
[Link](applet, [Link]);
[Link]();
[Link]();
[Link](800, 500);
[Link](null);
[Link](JFrame.EXIT_ON_CLOSE);
[Link](true);
}
}
class Elevator extends JPanel {
private boolean isUp;
private int numberFloors=5;
private int destinationFloor = 0;
private int currentFloor=5;
private int width = 30;
private int height;
private int x = 50;
private int currentY = 0 ;
private int dy = 4; // Moving interval
private Timer timer = new Timer(200, new Listener());
public Elevator() {
setBackground([Link]);
}
// Set elevator color
public void setColor(Color color) {
setForeground(color);
}
// Move the elevator to destination
public void move(int toFloor) {
destinationFloor = toFloor;
//[Link]("destinationfloor="+destinationFloor);
move();
}
private void move() {
if (destinationFloor > currentFloor)
isUp = true;
else // Moving down
isUp = false;
[Link]();
}
class Listener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (isUp) {
if (currentFloor < destinationFloor) {
currentY = currentY - dy;
repaint();
}
else
[Link]();
}
else {
if (currentFloor > destinationFloor) {
currentY=currentY+dy;
repaint();
}
else
[Link]();
}
}
}
public void paintComponent(Graphics g) {
[Link](g);
height = getHeight() /numberFloors;
currentFloor=(int)(numberFloors-numberFloors*((double)currentY/getHeight()));
[Link](x, currentY, width, height);
}
}
class ButtonPanel extends JPanel {
private Elevator elevator;
private JButton floor5=new JButton("Floor 5");
private JButton floor4=new JButton("Floor 4");
private JButton floor3=new JButton("Floor 3");
private JButton floor2=new JButton("Floor 2");
private JButton floor1=new JButton("Floor 1");
ButtonPanel(Elevator elevator) {
// Pass the elevator, frame, status to the button panel
[Link] = elevator;
setLayout(new GridLayout(5,1));
add(floor5);
add(floor4);
add(floor3);
add(floor2);
add(floor1);
setBackground([Link]);
[Link](new ButtonListener());
[Link](new ButtonListener());
[Link](new ButtonListener());
[Link](new ButtonListener());
[Link](new ButtonListener());
}
class ButtonListener implements ActionListener {
// Handle button actions
public void actionPerformed(ActionEvent e) {
if ([Link]() instanceof JButton)
{
if ([Link]()==floor5)
{
[Link](5);
}
if ([Link]()==floor4)
{
[Link](4);
}
if ([Link]()==floor3)
{
[Link](3);
}
if ([Link]()==floor2)
{
[Link](2);
}
if ([Link]()==floor1)
{
[Link](1);
}
}
}
}
}