📄 elevatorcontroller.java
字号:
// ElevatorController.java// Controller for Elevator Simulationpackage com.Anance.elevator.controller;// Java core packagesimport java.awt.*;import java.awt.event.*;// Java extension packagesimport javax.swing.*;// Deitel packagesimport com.Anance.elevator.model.*;import com.Anance.elevator.event.*;import com.Anance.elevator.ElevatorConstants;public class ElevatorController extends JPanel implements ElevatorConstants { // controller contains two JButtons private JButton firstControllerButton; private JButton secondControllerButton; // reference to model private ElevatorModel elevatorModel; public ElevatorController( ElevatorModel model ) { elevatorModel = model; setBackground( Color.white ); // add first button to controller firstControllerButton = new JButton( "First Floor" ); add( firstControllerButton ); // add second button to controller secondControllerButton = new JButton( "Second Floor" ); add( secondControllerButton ); // anonymous inner class registers for ActionEvents from // first Controller JButton firstControllerButton.addActionListener( new ActionListener() { // invoked when a JButton has been pressed public void actionPerformed( ActionEvent event ) { // add Person to first Floor elevatorModel.addPerson( FIRST_FLOOR_NAME ); // disable user input firstControllerButton.setEnabled( false ); } } // end anonymous inner class ); // anonymous inner class registers for ActionEvents from // second Controller JButton secondControllerButton.addActionListener( new ActionListener() { // invoked when a JButton has been pressed public void actionPerformed( ActionEvent event ) { // add Person to second Floor elevatorModel.addPerson( SECOND_FLOOR_NAME ); // disable user input secondControllerButton.setEnabled( false ); } } // end anonymous inner class ); // anonymous inner class enables user input on Floor if // Person enters Elevator on that Floor elevatorModel.addPersonMoveListener( new PersonMoveListener() { // invoked when Person has entered Elevator public void personEntered( PersonMoveEvent event ) { // get Floor of departure String location = event.getLocation().getLocationName(); // enable first JButton if first Floor departure if ( location.equals( FIRST_FLOOR_NAME ) ) firstControllerButton.setEnabled( true ); // enable second JButton if second Floor else secondControllerButton.setEnabled( true ); } // end method personEntered // other methods implementing PersonMoveListener public void personCreated( PersonMoveEvent event ) {} public void personArrived( PersonMoveEvent event ) {} public void personExited( PersonMoveEvent event ) {} public void personDeparted( PersonMoveEvent event ) {} public void personPressedButton( PersonMoveEvent event ) {} } // end anonymous inner class ); } // end ElevatorController constructor}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -