GUI
Las Interfaces Gráficas de Usuario (GUI) en Java permiten crear aplicaciones visuales con botones, ventanas, formularios y otros elementos interactivos.
🎯 1. ¿Qué son las GUI en Java?¶
Son interfaces que permiten a los usuarios interactuar con una aplicación de forma visual, en lugar de solo usar la línea de comandos.
🔹 Principales tecnologías para GUI en Java¶
Java ofrece diferentes herramientas para desarrollar interfaces gráficas:
1️⃣ AWT (Abstract Window Toolkit) → Antiguo, basado en componentes nativos del sistema operativo.
2️⃣ Swing → Más avanzado, con componentes más personalizables.
3️⃣ JavaFX → Moderno, más potente, permite diseño avanzado con CSS y efectos gráficos.
🚀 2. Creación de una GUI con Swing¶
Swing es la tecnología más usada en Java para GUI. Sus componentes incluyen:
JFrame→ Ventana principalJButton→ BotónJLabel→ Etiqueta de textoJTextField→ Campo de textoJPanel→ Contenedor de componentes
Ejemplo de una ventana simple con un botón:
import javax.swing.*;
public class MiVentana {
public static void main(String[] args) {
JFrame frame = new JFrame("Mi primera ventana");
JButton button = new JButton("Haz clic aquí");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(button);
frame.setVisible(true);
}
}
✅ Crea una ventana de 300x200 px con un botón.
✅ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); cierra la app al cerrar la ventana.
📌 3. Eventos en Java Swing¶
Para hacer que los botones y otros elementos respondan a acciones del usuario, usamos eventos.
Ejemplo: Mostrar un mensaje cuando se presiona un botón:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class EventoEjemplo {
public static void main(String[] args) {
JFrame frame = new JFrame("Evento en Java");
JButton button = new JButton("Haz clic");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(frame, "¡Botón presionado!");
}
});
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(button);
frame.setVisible(true);
}
}
✅ ActionListener escucha clics en el botón.
✅ JOptionPane.showMessageDialog() muestra un cuadro de diálogo.
🎨 4. JavaFX: Una Alternativa Moderna¶
JavaFX es una evolución de Swing con soporte para gráficos avanzados y animaciones.
Ejemplo de ventana con JavaFX:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class JavaFXEjemplo extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Haz clic aquí");
btn.setOnAction(e -> System.out.println("Botón presionado"));
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("JavaFX");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
✅ start(Stage primaryStage) crea la ventana principal.
✅ setOnAction(e -> System.out.println(...)) maneja eventos de clic.
🎤 5. Conclusión¶
🔹 Swing es fácil y rápido para interfaces básicas.
🔹 JavaFX es más moderno y potente, ideal para interfaces avanzadas.
🔹 Manejo de eventos es clave para interactividad.
🚀 ¿Te gustaría que haga una presentación con diapositivas sobre esto?