-
Notifications
You must be signed in to change notification settings - Fork 1
CampoCIValidado
Clase visual que permite el empleo de un JFormattedTextField
modificado para
la validación en tiempo real del carnet de identidad. Una vez válido, extrae
información del mismo, dígase edad, fecha de nacimiento y sexo.
Esta clase hereda de JFormattedTextField
.
Preview de Componente en la Prueba Visual:
- Uso del CaretListener
- Constructores
- Atributos de interés
- Métodos de interés
- Ejemplo de Uso
- Código Fuente
- Clases utilizadas (Importaciones)
Este componente permite validar en tiempo real el ci contenido en él. Para ello se
debe añadir un CaretListener
de la siguiente forma:
campoCIValidado = new CampoCIValidado();
campoCIValidado.addCaretListener(new CaretListener() {
@Override
public void caretUpdate(CaretEvent e) {
// Aquí va el código que se ejecutará cada
// vez que se cambia el contenido del
// texto del componente.
}
});
El componente permite extraer cierta información acerca de la persona que le pertenece
el ci pasado, por lo que dentro del código del CaretListener
podría extraerse la información
de sexo, edad y fecha de nacimiento si el ci pasado es válido. Ver ejemplo.
-
Arquetipo:
CampoCIValidado()
-
Descripción: Permite construir el componente visual
CampoCIValidado
. -
Particularidades: El componente es creado con fecha mínima y fecha máxima en
null
. Debido a que se usa unMaskFormatter
internamente el componente lanza unParseException
que debe ser manejado en un bloquetry/catch
o conthrows
. -
Ejemplo de uso:
try{ CampoCIValidado civ = new CampoCIValidado(); }catch(ParseException e){ e.printStackTrace(); }
-
Arquetipo:
CampoCIValidado(Date, Date)
-
Descripción: Permite construir el componente visual
CampoCIValidado
. -
Particularidades: El componente es creado con la fecha mínima y fecha máxima proporcionada.
Debido a que se usa un
MaskFormatter
internamente el componente lanza unParseException
que debe ser manejado en un bloquetry/catch
o conthrows
. -
Ejemplo de uso:
Date fechaMin = new Date(2002,4,5); Date fechaMax = new Date(); try{ CampoCIValidado civ = new CampoCIValidado(); }catch(ParseException e){ e.printStackTrace(); }
- Fecha mínima
- Fecha máxima
- CI válido
- Fecha de nacimiento acorde al CI
- Edad acorde al CI
- Sexo acorde al CI (char)
- Sexo acorde al CI (String)
-
Arquetipo:
Date fechaMin
-
Descripción:
Date
que determina la fecha mínima de nacimiento a la que puede referirse el ci introducido. -
Particularidades: La fecha creada a la hora de validar la fecha de nacimiento del carnet de identidad, se crea
con 0:00:00:00, por tanto, tome esto en cuenta a la hora de declarar los rangos de fecha.
Si es
null
no se comprobará el rango inferior. - Métodos Relacionados: Getter de fecha mínima y Setter de fecha mínima
-
Arquetipo:
Date fechaMax
-
Descripción:
Date
que determina la fecha máxima de nacimiento a la que puede referirse el ci introducido. -
Particularidades: La fecha creada a la hora de validar la fecha de nacimiento del carnet de identidad, se crea
con 0:00:00:00, por tanto, tome esto en cuenta a la hora de declarar los rangos de fecha.
Si es
null
no se comprobará el rango superior. - Métodos Relacionados: Getter de fecha máxima y Setter de fecha máxima
-
Arquetipo:
boolean ciValido
-
Descripción:
boolean
que determina si el carnet de identidad introducido es válido. -
Particularidades: Gracias al sistema de validación, solamente es trabajar con dicho valor agregando
un
CaretListener
a la implementación y determinando el comportamiento a seguir en caso de que se encuentre validado o no. - Métodos Relacionados: Getter de ci válido
-
Arquetipo:
Date fechaNacimientoCi
-
Descripción:
Date
que determina la fecha de nacimiento que corresponde a la persona del carnet de identidad introducido. -
Particularidades: Si el ciValido es
false
, su valor se mantendrá ennull
. Considerar que en dependencia del rango de fechas introducido (o no), este valor puede arrojar resultados extraños. - Métodos Relacionados: Getter de fecha de nacimiento acorde al ci
-
Arquetipo:
Integer edad
-
Descripción:
Integer
que determina la edad actual de la persona en dependencia del carnet de identidad introducido. -
Particularidades: Si el ciValido es
false
, pues se mantendrá el valor ennull
. Considerar que en dependencia del rango de fechas introducido (o no), este valor puede arrojar resultados extraños. - Métodos Relacionados: Getter de edad acorde al ci
-
Arquetipo:
Character sexoChar
-
Descripción:
Character
que determina el caracter de sexo (F o M) perteneciente a la persona que corresponda el carnet de identidad introducido. -
Particularidades: Si el ciValido es
false
, pues se mantendrá el valor ennull
. Considerar que en dependencia del rango de fechas introducido (o no), este valor puede arrojar resultados extraños. - Métodos Relacionados: Getter de sexo acorde al ci (char)
-
Arquetipo:
String sexoString
-
Descripción:
String
que determina el nombre del sexo (Femenino o Masculino) perteneciente a la persona que corresponda el carnet de identidad introducido. -
Particularidades: Si el ciValido es
false
, pues se mantendrá el valor ennull
. Considerar que en dependencia del rango de fechas introducido (o no), este valor puede arrojar resultados extraños. - Métodos Relacionados: Getter de sexo acorde al ci (String)
- Getter de fecha mínima
- Setter de fecha mínima
- Getter de fecha máxima
- Setter de fecha máxima
- Getter de CI válido
- Getter de Fecha de nacimiento acorde al CI
- Getter de Edad acorde al CI
- Getter de Sexo acorde al CI (char)
- Getter de Sexo acorde al CI (String)
-
Arquetipo:
getFechaMin()
- Descripción: Permite obtener la fecha mínima.
- Atributos Relacionados: Fecha mínima
-
Ejemplo de uso:
CampoCIValidado civ = new CampoCIValidado(new Date(), null); Date fechaMin = civ.getFechaMin();
-
Arquetipo:
setFechaMin(Date)
-
Parámetros:
Date
fecha mínima. - Descripción: Permite cambiar la fecha mínima.
-
Particularidades: Si la fecha máxima guardada es distinta de
null
y la fecha mínima proporcionada también, si la fecha mínima es posterior a la fecha máxima, se lanza unIllegalArgumentException
. - Atributos Relacionados: Fecha mínima
-
Ejemplo de uso:
CampoCIValidado civ = new CampoCIValidado(); civ.setFechaMin(new Date());
-
Arquetipo:
getFechaMax()
- Descripción: Permite obtener la fecha máxima.
- Atributos Relacionados: Fecha máxima
-
Ejemplo de uso:
CampoCIValidado civ = new CampoCIValidado(null, new Date()); Date fechaMax = civ.getFechaMax();
-
Arquetipo:
setFechaMax(Date)
-
Parámetros:
Date
fecha máxima. - Descripción: Permite cambiar la fecha máxima.
-
Particularidades: Si la fecha máxima guardada es distinta de
null
y la fecha mínima proporcionada también, si la fecha mínima es posterior a la fecha máxima, se lanza unIllegalArgumentException
. - Atributos Relacionados: Fecha máxima
-
Ejemplo de uso:
CampoCIValidado civ = new CampoCIValidado(); civ.setFechaMax(new Date());
-
Arquetipo:
getCiValido()
- Descripción: Permite obtener ciValido.
- Atributos Relacionados: Ci válido
-
Ejemplo de uso:
CampoCIValidado civ = new CampoCIValidado(); boolean b = civ.getCiValido();
-
Arquetipo:
getFechaNacimientoCi()
- Descripción: Permite obtener fechaNacimientoCi
- Atributos Relacionados: Fecha de Nacimiento
-
Ejemplo de uso:
CampoCIValidado civ = new CampoCIValidado(); Date d = civ.getFechaNacimientoCi();
-
Arquetipo:
getEdad()
- Descripción: Permite obtener edad
- Atributos Relacionados: Edad
-
Ejemplo de uso:
CampoCIValidado civ = new CampoCIValidado(); Integer i = civ.getEdad();
-
Arquetipo:
getSexoChar()
- Descripción: Permite obtener sexoChar
- Atributos Relacionados: Sexo Char
-
Ejemplo de uso:
CampoCIValidado civ = new CampoCIValidado(); Character c = civ.getSexoChar();
-
Arquetipo:
getSexoString()
- Descripción: Permite obtener sexoString
- Atributos Relacionados: Sexo String
-
Ejemplo de uso:
CampoCIValidado civ = new CampoCIValidado(); String s = civ.getSexoString();
// Permite crear un CampoCIValidado, el cual cuando tenga información correcta extraerá la fecha de nacimiento del mismo.
public class Prueba extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private CampoCIValidado campoCIValidado;
private JLabel fechaNac;
public Prueba() throws ParseException {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
campoCIValidado = new CampoCIValidado();
campoCIValidado.addCaretListener(new CaretListener() {
@Override
public void caretUpdate(CaretEvent e) {
if(campoCIValidado.getCiValido())
fechaNac.setText("Fecha de Nacimiento: "+new SimpleDateFormat("dd/MM/yyyy").format(campoCIValidado.getFechaNacimientoCi()));
else
fechaNac.setText("CI no válido");
}
});
campoCIValidado.setBounds(101, 151, 192, 40);
contentPane.add(campoCIValidado);
fechaNac = new JLabel("");
fechaNac.setBounds(51, 34, 206, 55);
contentPane.add(fechaNac);
}
}
public class CampoCIValidado extends JFormattedTextField{
private static final long serialVersionUID = 1L;
private Date fechaMin;
private Date fechaMax;
private boolean ciValido;
private Date fechaNacimientoCi;
private Integer edad;
private Character sexoChar;
private String sexoString;
public CampoCIValidado(final Date fechaMin, final Date fechaMax) throws ParseException{
super(new MaskFormatter("###########"));
ciValido=false;
determinarDatos();
setFechaMin(fechaMin);
setFechaMax(fechaMax);
setFocusLostBehavior(JFormattedTextField.PERSIST);
setColumns(11);
addCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent e) {
ciValido=Validaciones.validarCI(getText().trim(), fechaMin, fechaMax);
determinarDatos();
}
});
}
public CampoCIValidado() throws ParseException{
this(null, null);
}
public Date getFechaMin() {
return fechaMin;
}
public void setFechaMin(Date fechaMin) {
if(this.fechaMax!=null && fechaMin!=null && fechaMin.after(this.fechaMax))
throw new IllegalArgumentException();
this.fechaMin = fechaMin==null ? fechaMin : (Date)fechaMin.clone();
}
public Date getFechaMax() {
return fechaMax;
}
public void setFechaMax(Date fechaMax) {
if(this.fechaMin!=null && fechaMax!=null && this.fechaMin.after(fechaMax))
throw new IllegalArgumentException();
this.fechaMax = fechaMax==null ? fechaMax : (Date)fechaMax.clone();
}
public boolean getCiValido(){
return this.ciValido;
}
public Date getFechaNacimientoCi() {
return fechaNacimientoCi;
}
public Integer getEdad() {
return edad;
}
public Character getSexoChar() {
return sexoChar;
}
public String getSexoString() {
return sexoString;
}
private void determinarDatos(){
String ci = this.getText();
this.fechaNacimientoCi = this.ciValido ? Auxiliares.convertirFechaNacimientoCiDate(ci) : null ;
this.edad = this.ciValido ? Auxiliares.determinarEdad(fechaNacimientoCi) : null ;
this.sexoChar = this.ciValido ? Auxiliares.determinarSexo(ci) : null ;
this.sexoString = this.ciValido ? Auxiliares.determinarSexoString(ci) : null ;
}
}
import java.text.ParseException;
import java.util.Date;
import javax.swing.JFormattedTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.text.MaskFormatter;
import utilidades.Auxiliares;
import utilidades.Validaciones;
- Página Principal
- Bibliotecas usadas
- Descarga de la api
- Importación de la api
- Vinculación del
JavaDoc
- Vinculación del
Archivo Source
- Prueba Visual de la api
- Documentación de las clases de la api:
-
Componentes Visuales
AvatarCircular
BotonAnimacion
CampoCIValidado
CarruselImagenes
Imagen
ImagenAnimada
JLabelAnimacion
JLabelHora
JLabelMultilineaMultialineado
JTextFieldModificado
Linea
Notificaciones
NotificacionesModernas
PanelAnimacionCurvas
PanelBordeOval
PanelGradiente
PanelGradienteH
PanelGradienteV
RelojAnalogico
- Utilidades
- Algoritmos
- Modelos
-
Componentes Visuales
Nota: Algunas imágenes tardan un tiempo prolongado en cargarse en dependencia de la velocidad de conexión a Intenet.