public void mouseClicked(MouseEvent e) {

			int x = e.getX(), y = e.getY();

			Stimulus selectedStimulus = null;
			boolean clickCorrect = false;

			// Which object did I click, if any?
			for(Stimulus candidate : stimList) {

				// If we click inside the bounding box of a stimulus, record this
				// and break immediately (does not handle overlapping bounding boxes)
				if( candidate.getShape().getBounds().contains(x,y) ) {
					selectedStimulus = candidate;

					// Shallow equality okay since we're comparing the same pointer
					//if(selectedStimulus.getName() == stimTarget.getName()) {
					if(selectedStimulus.isEquivalent( stimTarget )) {
						clickCorrect = true;
					}
					break;
				}
			}

			// User didn't select a stimulus at all
			if(selectedStimulus == null) {
				Util.dPrintln("User clicked <" + x + ", " + y + ">, which was not a valid stimulus.");
				return;
			}

			long responseTime = System.currentTimeMillis() - initializationTime;
			Util.dPrintln("User " + (clickCorrect ? "correctly" : "incorrectly") + " selected stimulus " + selectedStimulus.toString() + " after " + responseTime + " ms.");

			processSelectionEvent(selectedStimulus, clickCorrect, responseTime);

		}