Skip to content
Snippets Groups Projects
Commit a8feba11 authored by NGUYEN Duc duong's avatar NGUYEN Duc duong
Browse files

update GUI

parent 908b629f
Branches
No related tags found
No related merge requests found
Pipeline #18712 passed
package elevator.GUI;
import java.awt.*; import java.awt.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
import javax.swing.JPanel; import javax.swing.*;
import javax.swing.Timer;
public class Building extends JPanel public class Building extends JPanel
{ {
/** /* private Timer timer;
*
*/
private static final long serialVersionUID = 1L;
private Timer timer;
private boolean isRunning; private boolean isRunning;
private int counter; private int counter;
private int timeElapsedInSecs; private int timeElapsedInSecs;*/
private Elevator elevator1; private Elevator elevator1;
private Elevator elevator2; // private Elevator elevator2;
private List<Floor> floors; private List<Floor> floors;
private int nbFloor;
private Random random; // private Random random;
public Building(int refreshRate) public Building( int nbFloor)
{ {
/*
this.isRunning = false; this.isRunning = false;
this.counter = 0; this.counter = 0;
this.timeElapsedInSecs = 0; this.timeElapsedInSecs = 0;
*/
this.nbFloor = nbFloor;
elevator1 = new Elevator(100, 400); elevator1 = new Elevator(100, 400);
elevator2 = new Elevator(250, 400); //elevator2 = new Elevator(250, 400);
floors = Collections.synchronizedList(new ArrayList()); floors = Collections.synchronizedList(new ArrayList());
for (int i = 0; i < 5; i++) for (int i = 0; i < nbFloor; i++)
{ {
floors.add(new Floor(100, 200, 250, 350, 100 * (5 - i), 750, i)); floors.add(new Floor(100, 200, 250, 350, 100 * (nbFloor - i), 750, i));
} }
random = new Random(); /* random = new Random();
timer = new Timer(refreshRate, (e) -> { timer = new Timer(refreshRate, (e) -> {
...@@ -61,10 +59,10 @@ public class Building extends JPanel ...@@ -61,10 +59,10 @@ public class Building extends JPanel
} }
}); });
timer.start(); timer.start();*/
} }
public Building() /* public Building()
{ {
this(10); this(10);
} }
...@@ -84,6 +82,10 @@ public class Building extends JPanel ...@@ -84,6 +82,10 @@ public class Building extends JPanel
isRunning = false; isRunning = false;
} }
} }
*/
public int getNbFloor(){
return nbFloor;
}
...@@ -92,13 +94,12 @@ public class Building extends JPanel ...@@ -92,13 +94,12 @@ public class Building extends JPanel
protected void paintComponent(Graphics g) protected void paintComponent(Graphics g)
{ {
super.paintComponent(g); super.paintComponent(g);
// this.setBackground(Color.WHITE); this.setBackground(Color.WHITE);
for (Floor floor : floors) for (Floor floor : floors)
{ {
floor.draw(g); floor.draw(g);
} }
elevator1.draw(g); elevator1.draw(g);
} }
......
package elevator.GUI;
import java.awt.Color; import java.awt.Color;
import java.awt.Graphics; import java.awt.Graphics;
import java.util.ArrayList; import java.util.ArrayList;
......
package elevator.GUI; /*
import java.awt.Color; import java.awt.Color;
import java.awt.Graphics; import java.awt.Graphics;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -58,4 +58,63 @@ public class Floor ...@@ -58,4 +58,63 @@ public class Floor
} }
}
*/
import javax.swing.*;
import java.awt.Color;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class Floor
{
private int x1;
private int x2;
private int x3;
private int x4;
private int y;
private int l;
private int floor;
public Floor(int x1, int x2, int x3, int x4, int y, int l, int floor)
{
this.x1 = x1;
this.x2 = x2;
this.x3 = x3;
this.x4 = x4;
this.y = y;
this.l = l;
this.floor = floor;
}
public void draw(Graphics g)
{
g.drawLine(0, y, x1, y);
g.drawLine(x2, y, x3, y);
// g.drawLine(x4, y, x3,y);
g.setColor(Color.LIGHT_GRAY);
g.fillRect(222, y - 50, 8, 10);
// g.fillRect(372, y - 50, 8, 10);
g.drawLine(x1, y, x2, y);
// g.drawLine(x3, y, x4, y);
g.setColor(Color.BLACK);
g.drawString("Etage " + floor, 30, y - 45);
}
public int getFloor()
{
return this.floor;
}
} }
package elevator.GUI;
import java.awt.*; import java.awt.*;
import javax.swing.JButton; import javax.swing.JButton;
...@@ -8,23 +6,26 @@ import javax.swing.JPanel; ...@@ -8,23 +6,26 @@ import javax.swing.JPanel;
public class Main public class Main
{ {
private final JFrame frame; private JFrame frame;
private final JPanel panel1; private JPanel panel1;
private final JPanel panel2; private JPanel buttonsPanel;
private final JButton btnStart; private JButton btnStart;
private final JButton btnStop; private JButton btnStop;
private Building building; private Building building;
private JButton[] floorButtons;
private JButton[] moveButtons;
private JPanel moveButtonPanel;
public Main() public Main()
{ {
building = new Building(); building = new Building(5);
building.setBounds(0, 0, 750, 500); building.setBounds(0, 0, 260, 500);
btnStart = new JButton("Start"); btnStart = new JButton("Start");
btnStart.setBounds(290, 512, 80, 25); btnStart.setBounds(290, 512, 80, 25);
btnStart.setFocusPainted(false); btnStart.setFocusPainted(false);
btnStart.addActionListener((e) -> { btnStart.addActionListener((e) -> {
building.start(); //building.start();
System.out.println("pressed start"); System.out.println("pressed start");
}); });
...@@ -32,25 +33,85 @@ public class Main ...@@ -32,25 +33,85 @@ public class Main
btnStop.setBounds(380, 512, 80, 25); btnStop.setBounds(380, 512, 80, 25);
btnStop.setFocusPainted(false); btnStop.setFocusPainted(false);
btnStop.addActionListener((e) -> { btnStop.addActionListener((e) -> {
building.stop(); // building.stop();
System.out.println("pressed stop"); System.out.println("pressed stop");
}); });
//test
// Tạo panel con 2 và đặt vị trí của nó
buttonsPanel = new JPanel(new GridLayout(2,1,10,10));
//buttonsPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 5));
JPanel numFloor = new JPanel();
// numFloor.setLayout(new FlowLayout(10, 5));
if (building.getNbFloor()%2 == 0){
numFloor = new JPanel(new GridLayout((building.getNbFloor()/2), 2, 2, 2));
}else {
numFloor = new JPanel(new GridLayout((building.getNbFloor()/2) +1, 2, 2, 2));
}
//numFloor.setBackground(new java.awt.Color(219, 217, 208));
//numFloor.setBounds(355,55, 200, 200);
// numFloor.setSize(50,40);
//buttonsPanel.setBackground(new java.awt.Color(219, 217, 208));
// buttonsPanel.setBackground(new java.awt.Color(30, 77, 203));
// panel2.setLayout(new BorderLayout());
//x=450
//x=260
buttonsPanel.setBounds(500, 100, 200, 250); // Đặt vị trí và kích thước của panel2
floorButtons = new JButton[building.getNbFloor()];
for (int i = 0; i < building.getNbFloor(); i++) {
floorButtons[i] = new JButton(String.valueOf(i));
floorButtons[i].setBackground(new java.awt.Color(255, 255, 255));
// floorButtons[i].setBounds();
// floorButtons[i].setSize(50,50);
numFloor.add(floorButtons[i]);
}
//emergency panel
JPanel emergencyPanel = new JPanel(new GridLayout(2, 1, 10, 10));
JButton haltButton = new JButton("HALT");
JButton resetButton = new JButton("RESET");
emergencyPanel.add(haltButton);
emergencyPanel.add(resetButton);
buttonsPanel.add(numFloor);
buttonsPanel.add(emergencyPanel);
//button up and down
/*
moveButtonPanel = new JPanel();
moveButtonPanel.setBounds(260, 0,40,550);
JButton upButton = new JButton("UP");
JButton downButton = new JButton("DOWN");
moveButtons = new JButton[building.getNbFloor()];
moveButtons[0].add(upButton);
moveButtonPanel.add(moveButtons[0]);
moveButtons[building.getNbFloor()-1].add(downButton);
moveButtonPanel.add(moveButtons[building.getNbFloor()-1]);
for (int i = 1; i < building.getNbFloor()-1; i++){
moveButtons[i].add(upButton);
moveButtons[i].add(downButton);
moveButtonPanel.add(moveButtons[i]);
// moveButtonPanel.setBackground(Color.BLUE);
// moveButtonPanel.setBounds(370, 50*(building.getNbFloor()-1),10,10);
// moveButtonPanel.add(moveButtons[i]);
}
*/
panel1 = new JPanel(null); panel1 = new JPanel(null);
//w=750 //w=750
panel1.setPreferredSize(new Dimension(750, 550)); panel1.setPreferredSize(new Dimension(1000, 550));
panel1.add(building); panel1.add(building);
panel1.add(btnStart); // panel1.add(btnStart);
panel1.add(btnStop); // panel1.add(btnStop);
panel1.add(buttonsPanel);
//test // panel1.add(moveButtonPanel);
// Tạo panel con 2 và đặt vị trí của nó
panel2 = new JPanel();
panel2.setBackground(Color.BLUE);
panel2.setBounds(150, 150, 100, 100); // Đặt vị trí và kích thước của panel2
panel1.add(panel2);
frame = new JFrame("Elevator Simulator"); frame = new JFrame("Elevator Simulator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment