public void actionPerformed(ActionEvent evt) {
		Object src = evt.getSource();
		try {
			if (src == resetTrain) {
				newGame();
			} else if (src == submitLocomotive) {
				addLocomotive(
						Integer.parseInt(locomotiveWeightField.getText()),
						getLocomotiveString());
			} else if (src == submitFreightCar) {
				addFreightCar(
						Integer.parseInt(freightCarWeightField.getText()),
						getFreightString());
			} else if (src == submitPassengerCar) {
				addPassengerCar(
						Integer.parseInt(passengerCarWeightField.getText()),
						Integer.parseInt(passengerCarSeatsField.getText()));
			} else if (src == submitBoardPassengers) {
				boardPassengers(Integer.parseInt(numberOfPassengersField
						.getText()));
			} else if (src == removeCarriage) {
				removeCarriage();
			}

			// actions to perform regardless of button pushed
			evaluatePanelStates();
			rePaintImagePanel();

			if (train.firstCarriage() != null) {
				displayText.append("Train Configuration: " + train.toString()
						+ "\n");
				canTrainMoveLabel.setText(trainCanMove());
			}

			if (train.firstCarriage() == null) {
				canTrainMoveLabel.setText("Train Can Move: ");
			}

		} catch (IllegalArgumentException e) {
			displayText.append("Please submit attributes for the carriage.\n");
		}
	}