Compare commits

..

2 Commits

Author SHA1 Message Date
COLIN Cyril
864419c22e Merge branch 'master' of https://git.lamaisondescouillons.fr/ccolin/projet-gl 2019-10-14 14:03:21 +02:00
COLIN Cyril
0d56ac1e3c implement event callbacks 2019-10-14 14:02:08 +02:00
4 changed files with 26 additions and 2 deletions

View File

@ -48,7 +48,7 @@ public class ElevatorApplication implements ActionListener {
pane.add(Box.createRigidArea(new Dimension(20, 0))); pane.add(Box.createRigidArea(new Dimension(20, 0)));
ElevatorPanel elevatorPanel = new ElevatorPanel(5); ElevatorPanel elevatorPanel = new ElevatorPanel(5, simulation);
elevatorPanel.setAlignmentY(Component.TOP_ALIGNMENT); elevatorPanel.setAlignmentY(Component.TOP_ALIGNMENT);
pane.add(elevatorPanel); pane.add(elevatorPanel);

View File

@ -1,20 +1,29 @@
package gui; package gui;
import javax.swing.*; import javax.swing.*;
import java.awt.event.*; import java.awt.event.*;
import commandSystem.ElevatorListener;
@SuppressWarnings("serial") @SuppressWarnings("serial")
class ElevatorPanel extends JPanel { class ElevatorPanel extends JPanel {
private JButton emergencyStop = new JButton("Emergency stop."); private JButton emergencyStop = new JButton("Emergency stop.");
private JButton[] buttons; private JButton[] buttons;
public ElevatorPanel(int nbFloors) { public ElevatorPanel(int nbFloors, ElevatorListener l) {
this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
this.add(new JLabel("Elevator panel.")); this.add(new JLabel("Elevator panel."));
buttons = new JButton[nbFloors]; buttons = new JButton[nbFloors];
for (int i = nbFloors-1; i >= 0; i--) { for (int i = nbFloors-1; i >= 0; i--) {
final int j = i;
buttons[i] = new JButton("" + i); buttons[i] = new JButton("" + i);
buttons[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
l.elevatorCall(j);
}
});
this.add(buttons[i]); this.add(buttons[i]);
} }
add(emergencyStop); add(emergencyStop);

View File

@ -5,6 +5,7 @@ import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import commandSystem.ElevatorListener; import commandSystem.ElevatorListener;
import commandSystem.Direction;
@SuppressWarnings("serial") @SuppressWarnings("serial")
@ -22,11 +23,23 @@ class FloorPanels extends JPanel {
floors[i].setLayout(new BoxLayout(floors[i], BoxLayout.LINE_AXIS)); floors[i].setLayout(new BoxLayout(floors[i], BoxLayout.LINE_AXIS));
floors[i].add(new JLabel("" + i)); floors[i].add(new JLabel("" + i));
if (i < nbFloors - 1) { if (i < nbFloors - 1) {
final int j = i;
JButton upButton = new JButton(""); JButton upButton = new JButton("");
upButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
l.floorCall(j, Direction.UP);
}
});
floors[i].add(upButton); floors[i].add(upButton);
} }
if (i > 0) { if (i > 0) {
final int j = i;
JButton downButton = new JButton(""); JButton downButton = new JButton("");
downButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
l.floorCall(j, Direction.DOWN);
}
});
floors[i].add(downButton); floors[i].add(downButton);
} }
this.add(floors[i]); this.add(floors[i]);

View File

@ -20,9 +20,11 @@ public class Simulation implements ElevatorListener {
} }
public void elevatorCall(int floor) { public void elevatorCall(int floor) {
System.out.println("elevator call " + floor);
} }
public void floorCall(int floor, Direction direction) { public void floorCall(int floor, Direction direction) {
System.out.println("floor call " + floor + " " + direction);
} }
public void floorChange(Direction d) { public void floorChange(Direction d) {