private void vincularJButtonActionPerformed(java.awt.event.ActionEvent evt) {
    if (especialidadesJList.getSelectedValue() == null) {
      JOptionPane.showMessageDialog(
          null, "Selecione uma especialidade!", "Aviso", JOptionPane.INFORMATION_MESSAGE);
    } else {

      boolean controle = false;

      for (Especialidade especialidade : especialidades) {
        if (especialidade.equals(especialidadesJList.getSelectedValue())) {
          controle = true;
          break;
        }
      }

      if (controle) {
        JOptionPane.showMessageDialog(
            null,
            "A especialidade selecionada já está vinculada à esse médico",
            "Aviso",
            JOptionPane.INFORMATION_MESSAGE);
      } else {
        especialidades.add((Especialidade) especialidadesJList.getSelectedValue());
        JOptionPane.showMessageDialog(
            null,
            "Especialidade vinculada com sucesso!",
            "Sucesso",
            JOptionPane.INFORMATION_MESSAGE);
        model.remove(especialidadesJList.getSelectedIndex());
      }
    }
  }
  private void detalhesJButtonActionPerformed(java.awt.event.ActionEvent evt) {

    if (especialidadesJList.getSelectedValue() == null) {
      JOptionPane.showMessageDialog(
          null, "Selecione uma especialidade!", "Aviso", JOptionPane.INFORMATION_MESSAGE);
    } else {
      Especialidade esp = (Especialidade) especialidadesJList.getSelectedValue();
      detalhesJTextArea.setText(Formatadora.format(esp.getDescricao(), 41));
    }
  }
  private void visualizarJButtonActionPerformed(java.awt.event.ActionEvent evt) {
    String str = "";

    for (Especialidade esp : especialidades) {
      str +=
          String.format(
              "Nome: %s\nDescricao: %s\n\n",
              esp.getNome(), Formatadora.format(esp.getDescricao(), 57));
    }

    new Exibir(str).setVisible(true);
  }