@Override
    protected String doInBackground(String... params) {

      String result = "";

      try {

        URL url = new URL(params[0]);

        HttpURLConnection cnn = (HttpURLConnection) url.openConnection();
        cnn.setRequestMethod("POST");
        cnn.setDoOutput(true);
        cnn.setRequestProperty("Content-Type", "application/json");

        // cuerpo de la peticion
        JSONObject datosAsociadoObj = new JSONObject();

        datosAsociadoObj.put("NombreCompleto", Nombre.getText());
        datosAsociadoObj.put("Contrasena", Contraseña.getText());
        datosAsociadoObj.put("Telefono", Telefono.getText());
        datosAsociadoObj.put("Correo", Correo.getText());
        OutputStream output = cnn.getOutputStream();

        output.write(datosAsociadoObj.toString().getBytes("UTF-8"));
        cnn.connect();

        // Validar si regreso algo o no

        InputStream stream = cnn.getInputStream();

        byte[] b = new byte[1024];
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        while (stream.read(b) != -1) baos.write(b);
        String responseJson = new String(baos.toByteArray());

        JSONObject jsonObject = new JSONObject(responseJson);

        result = jsonObject.getString("d");

      } catch (Throwable t) {
        t.printStackTrace();
        return null;
      }
      return result;
    }
 private void NombreKeyTyped(java.awt.event.KeyEvent evt) { // GEN-FIRST:event_NombreKeyTyped
   if (Nombre.getText().length() == 20) {
     evt.consume();
   }
 } // GEN-LAST:event_NombreKeyTyped
  private void botonOKActionPerformed(
      java.awt.event.ActionEvent evt) { // GEN-FIRST:event_botonOKActionPerformed

    /*
     * Si no se introducen el Tipo_Periodicidad es ninguno, se rellenan a 0
     */
    // Si la periodicidad es ninguna, no nos interesan la cuantia y el tiempo
    if (((String) Tipo_Periodicidad.getSelectedItem()).compareTo("Ninguna") == 0) {
      Cuantia_Donaciones.setText("0");
      Periodicidad_Donaciones.setText("0");
    }
    if (Telefono.getText().compareTo(" ") == 0) {
      Telefono.setText("0");
    }

    if (NIF_CIF.getText().compareTo("") == 0) {
      JOptionPane.showMessageDialog(
          this,
          "El NIF del donante no se ha introducido.",
          "NIF Donante",
          JOptionPane.ERROR_MESSAGE);
    } else if (Nombre.getText().compareTo("") == 0) {
      JOptionPane.showMessageDialog(
          this,
          "El nombre del donante no se ha introducido.",
          "Nombre Donante",
          JOptionPane.ERROR_MESSAGE);
    } else if (Apellidos.getText().compareTo("") == 0) {
      JOptionPane.showMessageDialog(
          this,
          "Los apellidos del donante no se han introducido.",
          "Apellidos Donante",
          JOptionPane.ERROR_MESSAGE);
    } else if (NIF_Voluntario.getText().compareTo("") == 0) {
      JOptionPane.showMessageDialog(
          this,
          "El NIF del voluntario no se ha introducido.",
          "NIF Voluntario",
          JOptionPane.ERROR_MESSAGE);
    } else if (!ValidarCampos.isEmail(Email.getText())) {
      JOptionPane.showMessageDialog(
          this,
          "El Email no es correcto. Debe ser valido",
          "Email Invalido",
          JOptionPane.ERROR_MESSAGE);
    } else if (Telefono.getText().compareTo("") != 0
        && !ValidarCampos.isInteger(Telefono.getText())) {
      JOptionPane.showMessageDialog(
          this,
          "El telefono no es correcto. Debe ser de tipo numerico",
          "Telefono Beneficiario",
          JOptionPane.ERROR_MESSAGE);
    } else if (!ValidarCampos.isDouble(Cuantia_Donaciones.getText())) {
      JOptionPane.showMessageDialog(
          this,
          "La Cuantia de Donaciones no es correcta. Debe ser un numero",
          "Cuantia Donaciones Invalido",
          JOptionPane.ERROR_MESSAGE);
    } else if (!ValidarCampos.isInteger(Periodicidad_Donaciones.getText())) {
      JOptionPane.showMessageDialog(
          this,
          "La Periodicidad de Donaciones no es correcta. Debe ser un numero",
          "Cuantia Donaciones Invalido",
          JOptionPane.ERROR_MESSAGE);
    } else {

      /*
       * Conversion de la fecha
       */
      Date Fecha_Nac = null;
      SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yy");
      try {
        Fecha_Nac = formatoFecha.parse(Fecha_Nacimiento.getText());
      } catch (ParseException ex) {
        Logger.getLogger(jAltaDonante.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(
            this,
            "Fecha de nacimiento incorrecto, utilice formato dd/MM/yy.",
            "Fecha de Nacimiento",
            JOptionPane.ERROR_MESSAGE);
      }

      /*
       * IntroducirDatosDonante
       */
      boolean correcto =
          ONG.gestorDonantes.introducirDatosDonante(
              NIF_CIF.getText().toUpperCase(),
              Nombre.getText(),
              Apellidos.getText(),
              Fecha_Nac,
              Localidad.getText(),
              Email.getText(),
              Integer.parseInt(Telefono.getText()),
              (String) Tipo_Donante.getSelectedItem(),
              new Date(),
              Observaciones.getText(),
              Integer.parseInt(Periodicidad_Donaciones.getText()),
              Double.parseDouble(Cuantia_Donaciones.getText()),
              (String) Tipo_Periodicidad.getSelectedItem(),
              NIF_Voluntario.getText());

      if (correcto) {
        ONG.gestorDonantes.confirmarFinAlta();
      } else {
        JOptionPane.showMessageDialog(
            this, "No se ha podido crear el nuevo Donante", "ERROR", JOptionPane.ERROR_MESSAGE);
      }
      /*
       * Actualizamos la pantalla principal
       */
      UI.cl.show(UI.jPrincipal, "Donantes");
    }
  } // GEN-LAST:event_botonOKActionPerformed