Skip to content

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 principal
  • JButton → Botón
  • JLabel → Etiqueta de texto
  • JTextField → Campo de texto
  • JPanel → 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?