private void CreateListeners() {
		addMouseListener(
			new MouseListener(){				
				public void mouseClicked(MouseEvent e){}
				public void mouseEntered(MouseEvent e){}
				public void mouseExited(MouseEvent e){}
				public void mousePressed(MouseEvent e){
					if (seeTrainPoints){
						if (displayImage != null){
							Point local=adjustPoint(e.getPoint());
							if (local != null){
								//fire all train click listeners
								switch (e.getButton()){
									case MouseEvent.BUTTON2: //ie middle click
										for (TrainClickListener l:trainClickListeners)
											l.DeletePoint(displayImage.getFilename(), local);
										break;
									case MouseEvent.BUTTON3: //ie right click	
										for (TrainClickListener l:trainClickListeners)
											l.NewNonPoint(displayImage.getFilename(), local);
										break;
										
									default: //ie left click or any other click in OS's that don't recognize the constants above
										for (TrainClickListener l:trainClickListeners)
											l.NewPoint(displayImage.getFilename(), local);										
								}
								

							}
						}
					}
					repaint();
				}
				public void mouseReleased(final MouseEvent e){
					if (seeTrainPoints)
						UpdateMagnifierMouseEvent(e);
				}
			}
		);	
		addMouseMotionListener(
			new MouseMotionListener(){
				public void mouseDragged(MouseEvent e){}	
				public void mouseMoved(MouseEvent e){
					trainPanel.UpdateLocationLabel(adjustPoint(e.getPoint()));
				}
			}
		);
	}