Cuando se realizan aplicaciones donde se están abriendo varios JFrames (formularios), estos pueden compartir información entre ellos, puede ser para validar datos, para habilitar o inhabilitar opciones, etc.
En este ejemplo se creara un formulario para iniciar sesión, a través de la validación de un usuario y su clave, se habilitara la opción para agregar o quitar usuarios en el sistema.
1.- Crear un nuevo proyecto y seguir los pasos que se vieron en el post sobre Interfaces de múltiples documentos, de forma tal que el proyecto quede como se muestra en la siguiente imagen.
2.- Dentro del JPanel de Iniciar sesión se creara una interfaz semejante a la que se muestra a continuación, donde se tendran un JTextField para el usuario y un JPasswordField para la clave o contraseña, este componente tiene la particularidad de que cuando el usuario escribe dentro de el no se muestran los caracteres escritos, sino que se muestran solo *.
3.- Una vez creado el JPanel para iniciar sesión se crea el objeto correspondiente dentro del MDIPrincipal, y posteriormente se agrega el contenido dentro del JInternalFrame para poder visualizarse posteriormente.
4.- Dentro del menú iniciar sesión se hace visible el JInternalFrame para poder iniciar sesión.
5.- Dentro del MDIPrincipal para que el JInternalFrame de iniciar sesión pueda tener acceso al menú item de usuarios hay que cambiar el modificador de acceso de private a protected para que otras clases dentro del package tengan acceso a estos componentes.
6.- Ya que se modifico el acceso se desactiva el atributo enabled para que al iniciar la aplicación este este inhabilitado y el usuario no pueda acceder a ciertos formularios, hasta que el usuario no valide su identidad.
7.- En el JPanel Iniciar sesión se crea un nuevo constructor que recibirá como parámetro un objeto de tipo MDIPrincipal, donde se encuentra el JMenuItem que se va a habilitar cuando el usuario es valido.
8.- Ya que se creo el nuevo constructor del JPanel, se modifica el MDIPrincipal agregando la palabra this como parámetro al momento de crear el objeto, de esta forma todos los componentes public o protected del MDIPrincipal serán accesibles desde el JPanel Iniciar sesión.
9.- Dentro del JButton Entrar se realiza una comparación sencilla entre el contenido del jtfUsuario y el jpfClave, verificando que sean iguales a los valores fijos "usuario" y "123", en caso de ser así mostrara un mensaje y después habilitara el jmiUsuarios del MDIPrincial.
La validación mostrada aquí solo es con fines demostrativos, esta se puede sustituir realizando una consulta a una base de datos para verificar si el usuario existe y si la contraseña es correcta.
10.- Al ejecutar la aplicación se puede observar como el JMenuItem de usuarios esta inhabilitado.
11.- En el JInternaFrame de iniciar sesión se realiza la validación del usuario y si ambos valores son correctos entonces se habilitara el JMenuItem de Usuarios del MDIPrincipal.
12.- Al mostrarse el mensaje de usuario valido, también se ha habilitado el menu item de usuarios
13.- Como se comento anteriormente ya se habilito la opción para visualizar el formulario de Usuarios.
Comentarios