Introducción a Java y Java Swing
Módulo 1: Introducción a Java y Java Swing
Section titled “Módulo 1: Introducción a Java y Java Swing”¿Qué es Java y cómo funciona?
Section titled “¿Qué es Java y cómo funciona?”Java es un lenguaje de programación de alto nivel, orientado a objetos, que fue desarrollado por Sun Microsystems (ahora propiedad de Oracle) en la década de 1990. Se ha convertido en uno de los lenguajes más populares del mundo debido a su versatilidad y amplia adopción en diversos sectores.
Características principales de Java
Section titled “Características principales de Java”- Orientado a objetos: Todo en Java es un objeto, lo que facilita la modularidad y reutilización del código.
- Independiente de la plataforma: El bytecode Java puede ejecutarse en cualquier dispositivo con JVM.
- Seguro: Proporciona un entorno de ejecución con múltiples capas de seguridad.
- Robusto: Gestión automática de memoria, verificación estricta de tipos y manejo de excepciones.
- Multihilo: Soporte nativo para programación concurrente.
- Distribuido: Diseñado con capacidades de red integradas.
¿Cómo funciona Java?
Section titled “¿Cómo funciona Java?”El proceso de ejecución de un programa Java sigue estos pasos:
Escritura del código fuente: El desarrollador escribe el código en archivos con extensión
.javaCompilación: El compilador de Java (
javac) convierte el código fuente en bytecode, generando archivos.classEjecución: La JVM carga, verifica y ejecuta el bytecode
+----------------+ +----------------+ +----------------+| | | | | || Código fuente |---->| Bytecode |---->| Ejecución en || (.java) | | (.class) | | JVM || | | | | |+----------------+ +----------------+ +----------------+ | | | v v vEscrito por el Generado por el Interpretado por la programador compilador JVM específica del SO- Class Loader: Carga las clases en memoria
- Verificador de Bytecode: Asegura que el código sea seguro
- Intérprete: Ejecuta las instrucciones bytecode
- JIT Compiler: Compila el bytecode a código nativo para mejorar rendimiento
- Garbage Collector: Gestiona automáticamente la memoria
Instalación del JDK y entorno (NetBeans o IntelliJ)
Section titled “Instalación del JDK y entorno (NetBeans o IntelliJ)”Instalación del JDK (Java Development Kit)
Section titled “Instalación del JDK (Java Development Kit)”El JDK es esencial para desarrollar aplicaciones Java, ya que incluye el compilador, herramientas de desarrollo y la JVM.
Descargar el JDK: Visita Oracle JDK o OpenJDK para obtener la versión más reciente
Instalar el JDK: Ejecuta el instalador y sigue las instrucciones
Configurar variables de entorno:
- JAVA_HOME: Ruta al directorio de instalación del JDK
- PATH: Añadir %JAVA_HOME%\bin (Windows) o $JAVA_HOME/bin (Unix/Linux)
Verificar la instalación: Abre una terminal y ejecuta
java -versionyjavac -version
Configuración de un IDE
Section titled “Configuración de un IDE”Un IDE (Entorno de Desarrollo Integrado) facilita enormemente el desarrollo en Java.
- Descarga NetBeans desde netbeans.apache.org
- Ejecuta el instalador y sigue las instrucciones
- Durante la instalación, asegúrate de que detecte correctamente el JDK instalado
- Una vez instalado, puedes crear un nuevo proyecto Java desde File > New Project
- Descarga IntelliJ IDEA desde jetbrains.com/idea
- Está disponible en versión Community (gratuita) y Ultimate (de pago)
- Ejecuta el instalador y sigue las instrucciones
- Al iniciar por primera vez, configura el JDK en File > Project Structure > SDKs
- Crea un nuevo proyecto Java desde File > New > Project
Primer programa con main en Java
Section titled “Primer programa con main en Java”Crear un programa “Hola Mundo” es el primer paso tradicional al aprender un nuevo lenguaje de programación.
public class HolaMundo { public static void main(String[] args) { System.out.println("¡Hola, mundo!"); }}Explicación del código
Section titled “Explicación del código”public class HolaMundo: Define una clase pública llamada HolaMundopublic static void main(String[] args): El método principal que se ejecuta al iniciar el programapublic: Accesible desde cualquier partestatic: Pertenece a la clase, no a una instanciavoid: No devuelve ningún valormain: Nombre del método (punto de entrada)String[] args: Array de argumentos pasados por línea de comandos
System.out.println("¡Hola, mundo!"): Imprime el texto en la consola
Compilación y ejecución
Section titled “Compilación y ejecución”# Compilar el programajavac HolaMundo.java
# Ejecutar el programajava HolaMundo- Crea un nuevo proyecto Java
- Crea una nueva clase llamada HolaMundo
- Escribe el código mostrado anteriormente
- Haz clic en el botón “Run” o presiona Shift+F10 (IntelliJ) o F6 (NetBeans)
¿Qué es Java Swing?
Section titled “¿Qué es Java Swing?”Java Swing es una biblioteca gráfica para crear interfaces de usuario (GUI) en aplicaciones Java. Forma parte del Java Foundation Classes (JFC) y proporciona componentes más sofisticados y flexibles que su predecesor, el Abstract Window Toolkit (AWT).
Características principales de Swing
Section titled “Características principales de Swing”- Componentes ligeros (lightweight): Dibujados por Java, no por el sistema operativo
- Look and Feel personalizable: Permite cambiar la apariencia de la aplicación
- Arquitectura MVC (Modelo-Vista-Controlador): Separa la lógica de la presentación
- Amplia variedad de componentes: Botones, tablas, árboles, pestañas, etc.
- Gestores de diseño (layout managers): Para organizar componentes de forma flexible
- Manejo de eventos: Sistema robusto para responder a acciones del usuario
Jerarquía de componentes Swing
Section titled “Jerarquía de componentes Swing”Object └── Component (AWT) └── Container └── Window └── Frame └── JFrame (Swing)| Componente | Descripción |
|---|---|
| JFrame | Ventana principal de la aplicación |
| JPanel | Contenedor para organizar componentes |
| JButton | Botón que puede ser presionado |
| JLabel | Muestra texto o imágenes |
| JTextField | Campo para entrada de texto |
| JComboBox | Lista desplegable |
| JTable | Muestra datos en formato tabular |
| JScrollPane | Agrega barras de desplazamiento |
Diferencias entre AWT y Swing
Section titled “Diferencias entre AWT y Swing”AWT (Abstract Window Toolkit) fue la primera biblioteca GUI para Java, mientras que Swing es su sucesor mejorado.
| Característica | AWT | Swing |
|---|---|---|
| Tipo de componentes | Pesados (dependen del SO) | Ligeros (independientes del SO) |
| Rendimiento | Más rápido en sistemas antiguos | Optimizado para sistemas modernos |
| Apariencia | Nativa del SO | Personalizable (Look and Feel) |
| Prefijo de clases | Sin prefijo específico | Comienzan con “J” (JButton, JFrame) |
| Componentes disponibles | Limitados | Extensos y avanzados |
| Arquitectura | Simple | MVC (Modelo-Vista-Controlador) |
| Doble buffer | No soportado | Soportado (evita parpadeo) |
| Personalización | Limitada | Altamente personalizable |
- Consistencia visual: Misma apariencia en todas las plataformas
- Mayor flexibilidad: Más opciones de personalización
- Componentes avanzados: Tablas, árboles, pestañas, etc.
- Mejor arquitectura: Separación de datos y presentación
- Menos bugs: No depende de la implementación nativa del SO
- Doble buffer: Elimina el parpadeo al redibujar
Estructura básica de una ventana (JFrame)
Section titled “Estructura básica de una ventana (JFrame)”JFrame es el componente principal para crear ventanas en Swing. Sirve como contenedor de alto nivel para otros componentes.
import javax.swing.*;import java.awt.*;
public class VentanaBasica extends JFrame {
public VentanaBasica() { // Configuración de la ventana setTitle("Mi Primera Ventana"); setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); // Centra la ventana
// Crear componentes JLabel etiqueta = new JLabel("¡Bienvenido a Java Swing!"); etiqueta.setHorizontalAlignment(JLabel.CENTER); etiqueta.setFont(new Font("Arial", Font.BOLD, 18));
JButton boton = new JButton("Haz clic aquí");
// Crear panel para organizar componentes JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.add(etiqueta, BorderLayout.CENTER); panel.add(boton, BorderLayout.SOUTH);
// Agregar panel a la ventana add(panel);
// Hacer visible la ventana setVisible(true); }
public static void main(String[] args) { // Ejecutar la aplicación en el EDT (Event Dispatch Thread) SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new VentanaBasica(); } }); }}Elementos clave de un JFrame
Section titled “Elementos clave de un JFrame”Importaciones necesarias:
javax.swing.*: Para componentes Swingjava.awt.*: Para layouts y otros elementos AWT que Swing utiliza
Configuración básica:
setTitle(): Establece el título de la ventanasetSize(): Define el tamaño inicial (ancho, alto)setDefaultCloseOperation(): Comportamiento al cerrar (EXIT_ON_CLOSE cierra la aplicación)setLocationRelativeTo(null): Centra la ventana en la pantalla
Agregar componentes:
- Crear los componentes (JLabel, JButton, etc.)
- Organizarlos usando paneles y layouts
- Añadirlos a la ventana con
add()
Hacer visible la ventana:
setVisible(true): Muestra la ventana en pantalla
Event Dispatch Thread:
SwingUtilities.invokeLater(): Asegura que la interfaz se cree en el hilo adecuado
Ciclo de vida de una aplicación Swing
Section titled “Ciclo de vida de una aplicación Swing”- Inicialización: Configuración de la ventana y componentes
- Visualización: Mostrar la interfaz al usuario
- Manejo de eventos: Responder a las acciones del usuario
- Actualización de la interfaz: Reflejar cambios en el estado de la aplicación
- Cierre: Liberar recursos y terminar la aplicación