Hibernate Swing Login para sistema de facturación | Java
Para el login de un sistema necesitamos crear un JFrame que va a tener campos como el nombre de usuario y contraseña, además de un botón que se encargará de conectar el controlador para comprobar las credenciales.
El diseño puede variar dependiendo de gustos y que tanto tiempo le dedicas a
perfeccionar ciertos detalles, tu puedes realizar el diseño con WindowBuilder
un plugin de Eclipse IDE.
Y como vemos es fácil crear el diseño, ahora toca hacer que funcione para
enviar datos a nuestro controlador, en la imagen se ve que está como
<dynamic> algunos JLabels, es porque se ha asignado un String obtenido
de un paquete de recursos denominado Bundle, tu puedes verlo haciendo
click aquí.
Ahora vamos a ver el constructor de LoginFrame.java
public class LoginFrame extends JFrame {
private static final long serialVersionUID = 1L;
private ResourceBundle bundle;
private MessageUtil messageUtil;
private ValidateData validateData;
private UserController userController;
public LoginFrame() {
bundle = ResourceBundle.getBundle("com/abigsite/facturationsystem/bundle/Bundle");
messageUtil = new MessageUtil();
validateData = new ValidateData();
userController = new UserController();
initComponents();
}
}
En el código anterior simplemente inicializamos variables,
bundle se usa para
gestionar una aplicación multilenguaje;
messageUtil se encarga
de abrir un JOptionPane mostrándonos el error solamente mandando un String
como parámetro;
validateData se encarga
de validar datos como campos vacíos, longitud de cadenas, validación de
contraseñas, entre otros que pueden agregar según necesiten en su software;
userController es el controlador de
usuario donde enviaremos datos desde la interfaz para persistir o comprobar
datos en la base; el método
initComponents es
simplemente la construcción de la interfaz que pueden hacerlo desde
WindowBuilder.
Ahora veamos como asignarle un String para que varíe dependiendo del idioma
aun JLabel como aparece en la segunda imagen a que sea dinámico.
JLabel lblUser = new JLabel(bundle.getString("usernameLabel"));
Ahora nuestro JLabel es dinámico y mostrará el texto en el idioma que deseemos
o tengamos declarados en nuestros paquetes de recursos (con JButton funciona
de la misma manera), bundle es la
variable que declaramos en el constructor. Si deseas saber más de paquetes de
recursos haz
click aquí.
private void login() {
if (isCorrectData()) {
if (userController.login(txtUsername.getText().trim(), pwdUserPassword.getPassword())) {
openMainFrame();
dispose();
} else {
pwdUserPassword.setText("");
txtUsername.requestFocus();
messageUtil.errorMessage(bundle.getString("userOrPasswordErrorMessage"));
}
}
}
En este último método es el encargado de enviar los datos de los campos requeridos al controlador para que este a su vez se conecte con una clase DAO y empiece a verificar si existe el usuario y si es así procede a verificar la contraseña.
Existe una función llamada isCorrectData() que simplemente verifica que los campos no estén vacíos y la longitud mínima de la cadena de cada campo para evitar que se este verificando en la base de datos cadenas de texto vacías.
Comentarios
Publicar un comentario