viernes, 11 de noviembre de 2016

PANTALLA INICIO DE SESION

  • Mostrar / Ocultar contraseña
CODIGO:
Codigo para Radio Button
// Mostrar/Ocultar contraseña
        if (jbMostrar.isSelected()) {
            jPassword.setEchoChar((char) 0);

        } else {
            jPassword.setEchoChar('*');
        }

CALCULAR EDAD

  • Calcular edad en base a la fecha actual y la fecha de nacimiento.


CODIGO:
Componentes de inicio
Calendar c2 = new GregorianCalendar();
        jdFechareg.setCalendar(c2);

Metodo para calcular edad
public int obtener(Date registro, Date nacimiento) {
    int edad = 0;
    if (nacimiento == null) {
     JOptionPane.showMessageDialog(null, "DEBE INGRESAR UNA FECHA DE NACIMIENTO         VALIDA");

        }
        if (nacimiento.getYear() >= registro.getYear()) {
          JOptionPane.showMessageDialog(null, "LA FECHA INGRESADA NO ES                      CORRECTA");
        } else {
            edad = registro.getYear() - nacimiento.getYear();

        }
        return edad;

    }
  Boton Calcular


        Date fn = jdFechanac.getCalendar().getTime();
        Date fr = jdFechareg.getCalendar().getTime();
        int Edad1 = obtener(fr, fn);
        JOptionPane.showMessageDialog(null, Edad1);
        txtEdad.setText(String.valueOf(Edad1));
        if (Edad1 < 18) {
            txtMensaje1.setText("Menor de edad");
            txtEdad.setText(" ");
        }
        if (Edad1 >= 65) {
            txtMensaje1.setText("Tercera Edad");

        }
        if (Edad1 <= 0) {
            txtMensaje1.setText("Fecha Incorrecta");

        } else {
            txtMensaje1.setText("Mayor de edad");

        }

        {
        }

CLASES Y EXPRESIONES REGULARES

Clases y Expresiones Regulares
Las expresiones regulares son algo que se usa desde hace años en otros lenguajes de programación como Perl, Sed o Awk. En la versión 1.4 del JDK de Sun se incluye el paquete java.util.regex, que proporciona una serie de clases para poder hacer uso de la potencia de este tipo de expresiones en Java
Las expresiones regulares se rigen por una serie de normas y hay una construcción para cualquier patrón de caracteres.
ü    para comprobar que la fecha leída cumple el patrón dd/mm/aaaa
ü    para comprobar que un NIF está formado por 8 cifras, un guión y una letra
ü    para comprobar que una dirección de correo electrónico es una dirección válida.
ü    para comprobar que una contraseña cumple unas determinadas condiciones.
ü    Para comprobar que una URL es válida.
ü    Para comprobar cuántas veces se repite dentro de la cadena una secuencia de caracteres determinada.

Uso
El paquete java.util.regex esta formado por dos clases, la clase Matcher y la clase Pattern y por una excepción, PatternSyntaxException.

  • La clase Pattern (segun la documentacion del jdk1.4) es la representacion compilada de una expresion regular, o lo que es lo mismo, representa a la expresion regular, que en el paquete java.util.regex necesita estar compilada. En castellano significa patrón.


  • La clase Matcher es un tipo de objeto que se crea a partir de un patrón mediante la invocación del método Pattern.matcher. Este objeto es el que nos permite realizar operaciones sobre la secuencia de caracteres que queremos validar o la en la secuencia de caracteres en la que queremos buscar.

Símbolos comunes en expresiones regulares

Expresión
Descripción
.
Un punto indica cualquier carácter
^expresión
El símbolo ^ indica el principio del String. En este caso el String debe contener la expresión al principio.
expresión$
El símbolo $ indica el final del String. En este caso el String debe contener la expresión al final.
[abc]
Los corchetes representan una definición de conjunto. En este ejemplo el String debe contener las letras a ó b ó c.
[abc][12]
El String debe contener las letras a ó b ó c seguidas de 1 ó 2
[^abc]
El símbolo ^ dentro de los corchetes indica negación. En este caso el String debe contener cualquier carácter excepto a ó b ó c.
[a-z1-9]
Rango. Indica las letras minúsculas desde la a hasta la z (ambas incluidas) y los dígitos desde el 1 hasta el 9 (ambos incluidos)
A|B
El carácter | es un OR.  A ó B
AB
Concatenación. A seguida de B

Meta caracteres
Expresión
Descripción
\d
Dígito. Equivale a [0-9]
\D
No dígito. Equivale a [^0-9]
\s
Espacio en blanco. Equivale a [ \t\n\x0b\r\f]
\S
No espacio en blanco. Equivale a [^\s]
\w
Una letra mayúscula o minúscula, un dígito o el carácter _
Equivale a  [a-zA-Z0-9_]
\W
Equivale a [^\w]
\b
Límite de una palabra.

Cuantificadores
Expresión
Descripción
{X}
Indica que lo que va justo antes de las llaves se repite X veces
{X,Y}
Indica que lo que va justo antes de las llaves se repite mínimo X veces y máximo Y veces. También podemos poner {X,} indicando que se repite un mínimo de X veces sin límite máximo.
*
Indica 0 ó más veces. Equivale a {0,}
+
Indica 1 ó más veces. Equivale a {1,}
?
Indica 0 ó 1 veces. Equivale a {0,1}


Ejemplos de Expresiones Regulares en Java:

1. Comprobar si el String cadena contiene exactamente el patrón (matches) “abc”
        Pattern pat = Pattern.compile("abc");
     Matcher mat = pat.matcher(cadena);
     if (mat.matches()) {
         System.out.println("SI");
     } else {
         System.out.println("NO");
     }

2. Comprobar si el String cadena contiene “abc”
        Pattern pat = Pattern.compile(".*abc.*");
     Matcher mat = pat.matcher(cadena);
     if (mat.matches()) {
         System.out.println("SI");
     } else {
         System.out.println("NO");
     }

3. Comprobar si el String cadena empieza por “abc”
     Pattern pat = Pattern.compile("^abc.*");
     Matcher mat = pat.matcher(cadena);
     if (mat.matches()) {
         System.out.println("Válido");
     } else {
         System.out.println("No Válido");
     }

4. Comprobar si el String cadena empieza por “abc” ó “Abc”
     Pattern pat = Pattern.compile("^[aA]bc.*");
     Matcher mat = pat.matcher(cadena);
     if (mat.matches()) {
         System.out.println("SI");
     } else {
         System.out.println("NO");
     }

5. Comprobar si el String cadena está formado por un mínimo de 5 letras mayúsculas o minúsculas y un máximo de 10.
      Pattern pat = Pattern.compile("[a-zA-Z]{5,10}");
     Matcher mat = pat.matcher(cadena);
     if (mat.matches()) {
         System.out.println("SI");
     } else {
         System.out.println("NO");
     }

Webgrafía:
Programacion.net http://programacion.net/articulo/expresiones_regulares_en_java_127

USO DE HILOS O THREADS EN JAVA

Los Hilos o los “Threads” en Java, son básicamente una forma de poder ejecutar varios procesos simultáneamente en nuestros programas en Java.
Usualmente para poder utilizarlos tenemos que crear clases que extienden a la clase Thread, y reescribir el método principal “run()”, el cual es el que se va a ejecutar principalmente al iniciar un hilo, thread o nuevo proceso en java.
·         La finalización depende del hilo (Thread.suspend, stop están depreciados)
·         Los hilos implementan prioridad y mecanismos de sincronización
·         Cualquier clase se puede hacer hilo.

Ciclo de Vida
Un thread puede pasar por varios estados durante su vida.
  • Ejecutándose
  • Pausado o Parado
  • Muerto

Existen distintos métodos que provocan las transiciones entre estos estados.

Crear un Thread
          Para crear un Thread hay que instanciarlo llamando al constructor como en el resto de clases.
          Dependiendo de cómo hayamos implementado el thread se actuará de una forma u otra:
Si hereda de la clase java.lang.Thread, simplemente se instancia nuestra clase.
Si implementa el interfaz java.lang.Runnable, se instancia la clase java.lang.Thread pasándole como parámetro del constructor una instancia de nuestra clase.

Arrancar un thread
          Para arrancar un thread hay que llamar al método start()
          El método start() registra al thread en el planificador de tareas del sistema y llama al método run() del thread.
          Ejecutar este método no significa que de forma inmediata comience a ejecutarse. Esto ya dependerá del planificador de tareas (Sistema Operativo) y del número de procesadores (Hardware)

Pausar un thread
Existen distintos motivos por los que un thread puede detenerse temporalmente su ejecución o lo que es lo mismo, pasar a un estado de pausa.
·         Se llama a su método sleep(). Recibe un long con el número de milisegundos de la pausa.
·         Se llama al método wait() y espera hasta recibir una señal (notify) o cumplirse un timeout definido por un long con el número de milisegundos.
·         Se realiza alguna acción de entrada/salida.
·         Se llama al método yield(). Este método saca del procesador al thread hasta que el sistema operativo lo vuelva a meter.

Reanudar un thread
Existen distintos motivos por los que un thread puede reanudar su ejecución:
·         Se consumen los milisegundos establecidos en una llamada al método sleep.
·         Se recibe una llamada (notify) o se consumen los milisegundos en una llamada al método wait.
·         Se termina alguna acción de entrada/salida.

Terminar un thread
  • Un thread, por defecto, termina cuando finaliza la ejecución de su método run().
  • En las primeras versiones de JDK existía el método stop(). Pero con el tiempo se deprecó (deprecated) desaconsejando su uso.
  • La manera correcta de terminar un thread es conseguir que finalice la ejecución del método run() mediante la implementación de algún tipo de bucle gobernado por una condición controlable.
  • El método System.exit() termina la JVM, terminando también todos los threads.
Webgrafía:
Santamaria, R. (s/F). Hilos en Java. [En línea] Recuperado de: vis.usal.es/rodrigo/documentos/aso/JavaHilos.pdf {Octubre 14, 2016}

Zelada, C. (2007). Hilos en Java. [En línea] Recuperado de: www.adictosaltrabajo.com/tutoriales/enterprisearchitectuml2-x/ {Octubre 14, 2016}

Villalobos,  J.  (2007). Uso de Hilos o Threads en Java. [En línea] Recuperado de: www.adictosaltrabajo.com/tutoriales/enterprisearchitectuml2-x/ {Octubre 14, 2016}