Creación y manejo de formularios con Java
El desarrollo de formularios es una parte integral en la creación de aplicaciones, ya sean de escritorio o web. En el ámbito de la programación de aplicación de escritorio, Java provee realidades como Swing, JavaFX y Abstract Window Toolkit (AWT), tres tecnologías que facilitan esta tarea.
Introducción a Swing para diseño de interfaces gráficas
Swing es una de las bibliotecas gráficas de Java para crear interfaces de usuario. Una de las ventajas de usar Swing es que nos provee de una cantidad generosa de componentes tales como botones, campos de texto, etiquetas y contenedores para organizar dichos elementos.
Creando una ventana básica con un formulario
Para empezar con Swing, primero necesitas importar las clases necesarias y luego crear una clase que herede de JFrame. Aquí tenemos un ejemplo básico de cómo se crea una ventana con Swing:
import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JButton; public class MiVentana extends JFrame { public MiVentana() { // Configuramos la ventana this.setTitle("Ejemplo de Formulario"); this.setSize(300, 200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Creamos y añadimos los componentes del formulario JLabel etiqueta = new JLabel("Nombre:"); JTextField campoTexto = new JTextField(20); JButton boton = new JButton("Enviar"); this.setLayout(new FlowLayout()); this.add(etiqueta); this.add(campoTexto); this.add(boton); this.setVisible(true); } public static void main(String[] args) { new MiVentana(); } }
Gestionar eventos del formulario
Un parte fundamental de trabajar con formularios es manejar los eventos que se generan cuando el usuario interactúa con los elementos. En Java, utilizamos los “Listeners” o escuchadores para gestionar dichos eventos. Por ejemplo, así es como podríamos manejar un evento de clic en un botón:
boton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String texto = campoTexto.getText(); System.out.println("Texto enviado: " + texto); } });
Desarrollo de formularios con JavaFX
JavaFX es un conjunto de herramientas de gráficos y medios que permite desarrolladores construir aplicaciones ricas en interfaces de usuario en plataformas cruzadas. Comparado con Swing, JavaFX ofrece una arquitectura más moderna y características avanzadas.
Construcción de un formulario en JavaFX
Para mostrar cómo se trabaja con JavaFX, veremos un ejemplo sencillo de un formulario que recoge un nombre y lo muestra por consola al presionar un botón.
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class FormularioJavaFX extends Application { @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("Formulario en JavaFX"); TextField textField = new TextField(); Button button = new Button("Saludar"); button.setOnAction(e -> { System.out.println("Hola, " + textField.getText() + "!"); }); VBox vbox = new VBox(textField, button); Scene scene = new Scene(vbox, 300, 120); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
Uso de AWT para formularios en la programación de Java
Aunque AWT es una herramienta más antigua comparada con Swing y JavaFX, algunos programadores todavía la utilizan, particularmente en ambientes donde se busca ligerelamize el recurso del perfil de un componente GUI.
Creación de un formulario simple con AWT
El siguiente código provee un ejemplo básico de cómo crear una ventana con un campo de texto y un botón utiliando AWT.
import java.awt.Button; import java.awt.Frame; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class FormularioAWT extends Frame { public FormularioAWT() { // Configuración inicial de la ventana setTitle("Formulario AWT"); setSize(300, 200); setLayout(new FlowLayout()); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); } }); // Creación y adición de componentes TextField textField = new TextField(20); Button button = new Button("Enviar"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Texto: " + textField.getText()); } }); add(textField); add(button); setVisible(true); } public static void main(String[] args) { new FormularioAWT(); } }