Programación de Hilos (Multithreading)

Capítulo 5: Programación de Hilos (Multithreading) y Programación de GUI (Interfaz Gráfica de Usuario)

Compartir

Este capítulo aborda dos conceptos importantes en la programación en Java: la programación de hilos (multithreading) y la programación de GUI (Interfaz Gráfica de Usuario). Ambos son fundamentales para la creación de aplicaciones interactivas y eficientes.

5.1. Programación de Hilos (Multithreading)

La programación de hilos permite la ejecución concurrente de tareas en un programa. Esto mejora la eficiencia y la capacidad de respuesta de la aplicación. Java ofrece facilidades para trabajar con hilos.

Ejemplo 5.1.1: Creación de Hilos

public class ProgramaMultithreading {
    public static void main(String[] args) {
        Runnable tarea1 = () -> {
            for (int i = 1; i <= 5; i++) {
                System.out.println("Tarea 1 - Iteración " + i);
            }
        };

        Runnable tarea2 = () -> {
            for (int i = 1; i <= 5; i++) {
                System.out.println("Tarea 2 - Iteración " + i);
            }
        };

        Thread hilo1 = new Thread(tarea1);
        Thread hilo2 = new Thread(tarea2);

        hilo1.start();
        hilo2.start();
    }
}

Ejercicio 5.1.1: Programación de Hilos

Crea un programa que utilice hilos para realizar dos tareas concurrentes: imprimir números pares e imprimir números impares. Asegúrate de sincronizar los hilos adecuadamente.

5.2. Programación de GUI (Interfaz Gráfica de Usuario)

La programación de GUI permite crear aplicaciones con interfaces gráficas interactivas. Java ofrece la biblioteca Swing para crear interfaces de usuario.

Ejemplo 5.2.1: Creación de una Ventana GUI

import javax.swing.*;

public class VentanaGUI {
    public static void main(String[] args) {
        // Crear una ventana
        JFrame ventana = new JFrame("Mi Aplicación GUI");
        ventana.setSize(400, 300);
        ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Crear un componente
        JLabel etiqueta = new JLabel("¡Hola, mundo!");

        // Agregar el componente a la ventana
        ventana.add(etiqueta);

        // Mostrar la ventana
        ventana.setVisible(true);
    }
}

Ejercicio 5.2.1: Creación de una Aplicación GUI

Crea una aplicación GUI que tenga una ventana con un botón. Al hacer clic en el botón, se debe mostrar un mensaje en una etiqueta o en una ventana emergente.

Resumen del Capítulo y Ejercicios

  • Resumen de los conceptos clave de este capítulo, incluyendo la programación de hilos (multithreading) y la programación de GUI (Interfaz Gráfica de Usuario).
  • Completa los ejercicios proporcionados para practicar y fortalecer tu comprensión de estos conceptos fundamentales en la programación en Java.

Este capítulo te proporciona las habilidades para crear aplicaciones interactivas y eficientes en Java utilizando hilos y GUI. Estas son habilidades esenciales para desarrollar aplicaciones modernas y funcionales.

Respuesta ejercicio 5.1.1:

Para resolver el ejercicio de crear un programa que utilice hilos para realizar dos tareas concurrentes de impresión de números pares e impares y sincronizarlos adecuadamente, sigue estos pasos:

Paso 1: Creación de la Clase Runnable

Primero, crea una clase que implemente la interfaz Runnable. Esta clase contendrá la lógica para imprimir números pares o impares.

class ImpresionNumeros implements Runnable {
    private boolean esPar;
    private int limite;

    public ImpresionNumeros(boolean esPar, int limite) {
        this.esPar = esPar;
        this.limite = limite;
    }

    public void run() {
        int inicio = esPar ? 2 : 1;
        for (int i = inicio; i <= limite; i += 2) {
            System.out.println(esPar ? "Par: " + i : "Impar: " + i);
        }
    }
}

Paso 2: Creación de Objetos Runnable

Crea dos objetos de la clase ImpresionNumeros para imprimir números pares e impares.

public class ProgramaHilos {
    public static void main(String[] args) {
        int limite = 10; // Define el límite de números a imprimir

        Runnable tareaPar = new ImpresionNumeros(true, limite);
        Runnable tareaImpar = new ImpresionNumeros(false, limite);

        // Crea hilos para las tareas
        Thread hiloPar = new Thread(tareaPar);
        Thread hiloImpar = new Thread(tareaImpar);

        // Inicia los hilos
        hiloPar.start();
        hiloImpar.start();
    }
}

Resultado Esperado:

El programa imprimirá números pares e impares en paralelo, hasta el límite especificado.

Es importante destacar que los hilos son independientes y pueden ejecutarse en un orden no determinista. Si deseas que los hilos se ejecuten en un orden específico, puedes utilizar técnicas de sincronización, como el uso de synchronized o wait y notify.

Este ejercicio demuestra cómo utilizar hilos en Java para realizar tareas concurrentes y cómo sincronizarlos para lograr un comportamiento deseado.

Respuesta ejercicio 5.2.1:

Para resolver el ejercicio de crear una aplicación GUI en Java que tenga una ventana con un botón y muestre un mensaje en una etiqueta o en una ventana emergente cuando se hace clic en el botón, sigue estos pasos:

Paso 1: Creación de la Interfaz de Usuario

Primero, crea la interfaz de usuario utilizando la biblioteca Swing de Java. En este ejemplo, se crea una ventana con un botón.

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class VentanaGUI {
    public static void main(String[] args) {
        // Crear una ventana
        JFrame ventana = new JFrame("Aplicación GUI");
        ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Crear un contenedor
        Container contenedor = ventana.getContentPane();

        // Crear un botón
        JButton boton = new JButton("Mostrar Mensaje");
        contenedor.add(boton);

        // Crear una etiqueta para mostrar el mensaje
        JLabel etiqueta = new JLabel("");
        contenedor.add(etiqueta);

        // Agregar un evento al botón
        boton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                etiqueta.setText("¡Hola, mundo!");
            }
        });

        // Configurar el diseño y tamaño
        contenedor.setLayout(new FlowLayout());
        ventana.setSize(300, 100);
        ventana.setVisible(true);
    }
}

Resultado Esperado:

La aplicación mostrará una ventana con un botón «Mostrar Mensaje». Al hacer clic en el botón, se mostrará el mensaje «¡Hola, mundo!» en una etiqueta.

Paso 2: Ejecución del Programa

Ejecuta el programa para iniciar la aplicación GUI. La ventana aparecerá en la pantalla.

Paso 3: Interacción con la Aplicación

Haz clic en el botón «Mostrar Mensaje» para ver cómo se actualiza la etiqueta con el mensaje «¡Hola, mundo!».

Este ejercicio muestra cómo crear una aplicación GUI simple en Java utilizando la biblioteca Swing y cómo agregar interacción mediante eventos. Puedes personalizar y ampliar esta interfaz para crear aplicaciones más complejas.


Compartir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *