public void editar() {

    VisitanteMdl visitante = new VisitanteMdl();
    validar = false;
    if (!txtId.getText().isEmpty()) {
      for (int i = 0; i < visitantes.size(); i++) {
        if (!txtId.getText().equalsIgnoreCase(visitantes.get(i).getId())
            && txtNome.getText().equalsIgnoreCase(visitantes.get(i).getNome())
            && cbNacional
                .getSelectedItem()
                .toString()
                .equalsIgnoreCase(visitantes.get(i).getNacionalidade())) {
          msg("erroredit", visitantes.get(i).getNome());
          validar = true;
        }
      }
      if (!(validar == true)) {
        for (int i = 0; i < visitantes.size(); i++) {
          if (txtId.getText().equalsIgnoreCase(visitantes.get(i).getId())) {
            visitante.setId(txtId.getText());
            visitante.setNome(txtNome.getText());
            visitante.setDataNasc(txtDataNasc.getText());
            visitante.setNacionalidade(cbNacional.getSelectedItem().toString());
            if (rdbtnMasculino.isSelected()) {
              visitante.setSexo(rdbtnMasculino.getText());
            } else if (rdbtnFeminino.isSelected()) {
              visitante.setSexo(rdbtnFeminino.getText());
            }
            if (checkING.isSelected()) {
              visitante.setIdioma(checkING.getText());
            } else if (checkPT.isSelected()) {
              visitante.setIdioma(checkPT.getText());
            } else if (checkESP.isSelected()) {
              visitante.setIdioma(checkESP.getText());
            }
            visitantes.set(i, visitante);
            atualizaDados(visitantes);
            msg("edit", txtNome.getText());
            limpaCampos();
          }
        }
      }
    } else {
      msg("errorsearch", txtNome.getText());
    }
  }
  public void lerArquivo() {

    String linha = new String();
    ArrayList<String> list = new ArrayList<>();
    try {
      arquivos.leArquivo("../MASProject/dados/", "visitante");
      linha = arquivos.getBuffer();
      String[] listaVisitante = linha.split(";");
      for (String s : listaVisitante) {
        String text = s.replaceAll(".*: ", "");
        list.add(text);
        if (s.contains("---")) {
          VisitanteMdl visitante = new VisitanteMdl();
          visitante.setId(list.get(0));
          visitante.setNome(list.get(1));
          visitante.setDataNasc(list.get(2));
          visitante.setNacionalidade(list.get(3));
          visitante.setSexo(list.get(4));
          visitante.setIdioma(list.get(5));
          visitantes.add(visitante);
          list.clear();
        }
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  public void pesquisar() {

    ArrayList<VisitanteMdl> lista = new ArrayList<>();
    String pesquisa = "";
    if (!txtNome.getText().isEmpty() || !txtId.getText().isEmpty()) {
      for (int i = 0; i < visitantes.size(); i++) {
        if (txtNome.getText().equalsIgnoreCase(visitantes.get(i).getId())) {
          txtId.setText(visitantes.get(i).getId());
          txtNome.setText(visitantes.get(i).getNome());
          cbNacional.getModel().setSelectedItem(visitantes.get(i).getNacionalidade());
          validar = true;
        } else if (visitantes
            .get(i)
            .getNome()
            .toLowerCase()
            .startsWith(txtNome.getText().toLowerCase())) {
          validar = true;
          cbNacional.getModel().setSelectedItem(visitantes.get(i).getNacionalidade());
        }
      }
      if (validar == true) {
        for (int i = 0; i < visitantes.size(); i++) {
          boolean filtro =
              visitantes.get(i).getNome().toLowerCase().startsWith(txtNome.getText().toLowerCase());
          if (filtro == true) {
            VisitanteMdl item = new VisitanteMdl();
            item.setId(visitantes.get(i).getId());
            item.setNome(visitantes.get(i).getNome());
            item.setDataNasc(visitantes.get(i).getDataNasc());
            item.setNacionalidade(visitantes.get(i).getNacionalidade());
            item.setSexo(visitantes.get(i).getSexo());
            item.setIdioma(visitantes.get(i).getIdioma());
            lista.add(item);
          }
        }
        String[] filtro = new String[lista.size()];
        for (int i = 0; i < lista.size(); i++) {
          filtro[i] = lista.get(i).getId() + " : " + lista.get(i).getNome();
          pesquisa = lista.get(i).getId();
        }
        if (filtro != null && filtro.length > 1) {
          pesquisa =
              (String)
                  JOptionPane.showInputDialog(
                      form,
                      "Selecione:\n",
                      "Registros Localizados",
                      JOptionPane.INFORMATION_MESSAGE,
                      null,
                      filtro,
                      filtro[0]);
        }
        if (pesquisa == "0" || pesquisa != null) {
          for (int i = 0; i < visitantes.size(); i++) {
            if (pesquisa.replaceAll(" : .*", "").equalsIgnoreCase(visitantes.get(i).getId())) {
              txtId.setText(visitantes.get(i).getId());
              txtNome.setText(visitantes.get(i).getNome());
              txtDataNasc.setText(visitantes.get(i).getDataNasc());
              cbNacional.getModel().setSelectedItem(visitantes.get(i).getNacionalidade());
              if (("Masculino").equalsIgnoreCase(visitantes.get(i).getSexo())) {
                rdbtnMasculino.setSelected(true);
              } else if (("Feminino").equalsIgnoreCase(visitantes.get(i).getSexo())) {
                rdbtnFeminino.setSelected(true);
              }
              if (("Português").equalsIgnoreCase(visitantes.get(i).getIdioma().toString())) {
                checkPT.setSelected(true);
              } else if (("Inglês").equalsIgnoreCase(visitantes.get(i).getIdioma().toString())) {
                checkING.setSelected(true);
              } else if (("Espanhol").equalsIgnoreCase(visitantes.get(i).getIdioma().toString())) {
                checkESP.setSelected(true);
              }
            }
          }
          validar = false;
        }
      } else if (pesquisa == "") {
        msg("nosearch", txtNome.getText());
        limpaCampos();
      }
      validar = false;
    } else {
      msg("errorsearch", txtNome.getText());
    }
  }