private void addValidar(JComponent contro, ValidacoesTipos tipo, Object[] extras) {
   if (!controls.containsKey(contro)) {
     controls.put(contro, new ArrayList<ValidacaoCampos>());
     addListener(contro);
   }
   ValidacaoCampos v = new ValidacaoCampos(contro, tipo);
   v.adicionais(extras);
   controls.get(contro).add(v);
   //        validaControl(contro);
 }
  private final boolean validaControl(JComponent control) {
    boolean valido = true;
    List<ValidacaoCampos> list = controls.get(control);
    int indiceInvalido = -1;
    for (int i = 0; i < list.size(); i++) {
      ValidacaoCampos validacaoCampos = list.get(i);
      if (!validacaoCampos.valida()) {
        indiceInvalido = i;
        valido = false;
      }
    }
    for (ValidacaoCampos validacaoCampos : list) {
      validacaoCampos.escondeIcone();
    }
    if (indiceInvalido != -1) {
      list.get(indiceInvalido).mudaEstadoCampo();
    } else {

      list.get(0).mudaEstadoCampo();
    }
    return valido;
  }