Introducción
Este tutorial paso a paso te enseñará cómo crear una interfaz de inicio de sesión básica usando JavaFX en Eclipse. Esta interfaz permitirá a los usuarios ingresar un nombre de usuario y una contraseña, proporcionando una base sólida para proyectos que requieran autenticación.
Preparativos Iniciales
Antes de comenzar a codificar, necesitamos preparar nuestro entorno de desarrollo:
- Instalación del JDK: Asegúrate de tener instalado Java Development Kit (JDK) 11 o superior, ya que JavaFX es parte de este.
- Configuración de Eclipse: Descarga e instala Eclipse si aún no lo has hecho. Eclipse es un IDE popular que facilita el desarrollo de aplicaciones Java.
- Instalación del plugin e(fx)clipse: Desde Eclipse, abre el Marketplace y busca e instala el plugin e(fx)clipse. Este plugin añade soporte para JavaFX.
Crear un Proyecto JavaFX
Sigue estos pasos para configurar tu proyecto:
- Crear un Proyecto JavaFX: En Eclipse, ve a
File > New > Other...
, seleccionaJavaFX Project
bajo la sección JavaFX, y completa el asistente de configuración. - Estructura básica del proyecto: Eclipse generará una clase principal que extiende de
Application
, la cual será el punto de entrada de tu aplicación.
Diseño de la Pantalla de Login
Ahora, diseñaremos la pantalla de login. Abajo está el código para una interfaz simple de inicio de sesión:
package loginapp;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.stage.Stage;
public class LoginApplication extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Login");
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(25, 25, 25, 25));
// Componentes de la interfaz
Label lblUsername = new Label("Usuario:");
TextField txtUsername = new TextField();
Label lblPassword = new Label("Contraseña:");
PasswordField pwPassword = new PasswordField();
Button btnLogin = new Button("Iniciar Sesión");
HBox hbBtn = new HBox(10);
hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
hbBtn.getChildren().add(btnLogin);
Label lblInfo = new Label();
grid.add(lblUsername, 0, 1);
grid.add(txtUsername, 1, 1);
grid.add(lblPassword, 0, 2);
grid.add(pwPassword, 1, 2);
grid.add(hbBtn, 1, 4);
grid.add(lblInfo, 1, 6);
// Manejo de eventos
btnLogin.setOnAction(e -> {
if (txtUsername.getText().equals("admin") && pwPassword.getText().equals("admin")) {
lblInfo.setText("Inicio de sesión exitoso!");
} else {
lblInfo.setText("Error en el inicio de sesión.");
}
});
Scene scene = new Scene(grid, 300, 275);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Explicación del Código
- GridPane: Usamos
GridPane
para organizar los elementos de la interfaz de forma estructurada y alineada. - Campos de texto y etiquetas: Incorporamos
TextField
para el usuario yPasswordField
para la contraseña, garantizando que la entrada de datos sea apropiada. - Botón y Manejo de Eventos: El botón «Iniciar Sesión» ejecuta un bloque de código que verifica si las credenciales son correctas. En una aplicación real, conectarías este método con una base de datos o sistema de gestión de usuarios.
Prueba y Ejecución
- Ejecución de la aplicación: Haz clic derecho sobre el proyecto en Eclipse, selecciona
Run As > Java Application
. Si todo está configurado correctamente, deberías ver la pantalla de login que hemos diseñado.
Conclusión
Has aprendido a crear una sencilla interfaz de inicio de sesión en JavaFX, estableciendo una base para aplicaciones más complejas que requieran autenticación de usuarios. Este proyecto es ampliable y puede ser adaptado con características adicionales como conexión a bases de datos, manejo de sesiones y más.
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.