void processKeyReleased(KeyEvent e) {
		getModel().runKeyScript(KeyEvent.KEY_RELEASED, e.getKeyCode());
		boolean b = false;
		switch (e.getKeyCode()) {
		case KeyEvent.VK_UP:
			keyPressedCode = keyPressedCode ^ UP_PRESSED;
			b = true;
			break;
		case KeyEvent.VK_DOWN:
			keyPressedCode = keyPressedCode ^ DOWN_PRESSED;
			b = true;
			break;
		case KeyEvent.VK_LEFT:
			keyPressedCode = keyPressedCode ^ LEFT_PRESSED;
			b = true;
			break;
		case KeyEvent.VK_RIGHT:
			keyPressedCode = keyPressedCode ^ RIGHT_PRESSED;
			b = true;
			break;
		}
		if (b) {
			processUserFieldsUponKeyOrMouseReleased();
		}
		if (getModel().getJob() == null || getModel().getJob().isStopped())
			repaint();
		// MUST not consume this event and leave this to the key binding to work. As a result, key binding
		// must set KeyStroke with onKeyRelease flag set to true.
		// if(hasFocus()) e.consume();
	}