@Override
	public void mouseDragged(MouseEvent arg0) {
		Point mousePosition = getMouseLocation(arg0);
		
		if (dragLevel == 0 && startOfPress != null) {
			draggedX = mousePosition.getRow();
			draggedY = mousePosition.getCol();
			if (checkers[draggedX][draggedY] == null) {
				draggedX = -1;
				draggedY = -1;
				return;
			}
			dragLevel++;
			this.setLayer((Component) checkers[draggedX][draggedY], JLayeredPane.DRAG_LAYER);
		}
		else if (draggedX != -1 && checkers[draggedX][draggedY] != null) {
			checkers[draggedX][draggedY].setLocation(arg0.getX() - CHECKERSIZE / 2
					, arg0.getY() - CHECKERSIZE / 2);
			paintImmediately(arg0.getY() - CHECKERSIZE / 2, arg0.getX() - CHECKERSIZE / 2
					, arg0.getY() + CHECKERSIZE / 2, arg0.getX() + CHECKERSIZE / 2);
			dragLevel++;
		}
	}