if (field.getBinding() != null) control.removeBinding(field.getBinding());
	private synchronized void setBinding(final Binding binding, final boolean set) {		if (hasBeenSet) return;		hasBeenSet = true;		disabled = true;				KeyInput.get().removeListener(this);		MouseInput.get().removeListener(this);		JoystickInput.get().removeListener(this);				MouseInput.get().setCursorVisible(true);				SwingUtilities.invokeLater(new Runnable() {			public void run() {				if (set) {					boolean alreadyBound = false;					if (!field.getGameControlPanel().getGameControl().containsBinding(binding)) {						for (GameControl control : field.getGameControlPanel().getControlCongigurationPanel().getControls()) {							if (control.containsBinding(binding)) {								alreadyBound = true;							}						}					}										boolean shouldSet = true;					if (alreadyBound) {						if (JOptionPane.showInternalConfirmDialog(field, "This is already bound.\n\nDo you wish to replace it?", "Binding Already Exisst", JOptionPane.YES_NO_OPTION) != JOptionPane.YES_OPTION) {							shouldSet = false;						}					}										if (shouldSet) {						for (GameControl control : field.getGameControlPanel().getControlCongigurationPanel().getControls()) {							control.removeBinding(binding);						}						field.getGameControlPanel().getGameControl().addBinding(binding);					}				}				lastHit = System.currentTimeMillis();								field.getGameControlPanel().getControlCongigurationPanel().update();				disabled = false;			}		});	}