04/02/2019
Java Swing es una librería fundamental para el desarrollo de interfaces gráficas de usuario (GUI) en Java. Proporciona una amplia gama de componentes para construir aplicaciones de escritorio ricas y funcionales. Este artículo explorará los comandos y técnicas clave para dominar Swing, desde la creación de ventanas básicas hasta la manipulación de eventos y la personalización de la apariencia.

Fundamentos de JFrame
JFrame es la clase base para cualquier aplicación Swing. Actúa como el contenedor principal, la ventana principal de la aplicación. Sin un JFrame, no es posible construir una interfaz gráfica en Swing. Piensa en él como la estructura fundamental sobre la que se construyen todos los demás elementos.
Para crear una ventana simple, se utiliza el siguiente código:
javaimport javax.swing.;public class MiVentana extends JFrame { public MiVentana() { setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); }}
Este código crea una ventana de 300x200 píxeles que se cierra al hacer clic en la 'X'. setSize() establece el tamaño, setDefaultCloseOperation() define el comportamiento al cerrar, y setVisible() hace visible la ventana.
Componentes Swing Básicos
Swing ofrece una variedad de componentes predefinidos, como botones ( JButton ), etiquetas ( JLabel ), campos de texto ( JTextField ), áreas de texto ( JTextArea ), etc. Estos componentes se añaden al JFrame utilizando un gestor de diseño (layout manager).
Gestores de Diseño (Layout Managers)
Los gestores de diseño facilitan la organización de los componentes en la ventana. Algunos de los más comunes son:
- FlowLayout: Ordena los componentes de izquierda a derecha, de arriba abajo.
- BorderLayout: Divide la ventana en cinco regiones (Norte, Sur, Este, Oeste, Centro).
- GridLayout: Ordena los componentes en una cuadrícula.
- BoxLayout: Ordena los componentes en una sola fila o columna.
Ejemplo de uso de BorderLayout :
javaimport javax.swing.;public class VentanaConBorderLayout extends JFrame { public VentanaConBorderLayout() { setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); add(new JButton("Norte"), BorderLayout.NORTH); add(new JButton("Sur"), BorderLayout.SOUTH); add(new JButton("Este"), BorderLayout.EAST); add(new JButton("Oeste"), BorderLayout.WEST); add(new JLabel("Centro"), BorderLayout.CENTER); setVisible(true); }}
Este código coloca cuatro botones en los bordes de la ventana y una etiqueta en el centro.
Manejo de Eventos
Para que una aplicación Swing sea interactiva, es necesario manejar los eventos que ocurren, como clics de botones, escritura en campos de texto, etc. Esto se hace implementando interfaces de escucha (listeners).
Ejemplo de un listener para un botón:
javaimport javax.swing.;import java.awt.event.;public class VentanaConBoton extends JFrame implements ActionListener { private JButton boton; public VentanaConBoton() { setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); boton = new JButton("Click Aquí"); boton.addActionListener(this); add(boton); setVisible(true); } public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(this, "Has hecho clic en el botón!"); }}
En este código, la clase implementa ActionListener y el método actionPerformed() se ejecuta cuando se hace clic en el botón.
Consultas Habituales
A continuación, se responden algunas consultas habituales sobre comandos en Swing:
| Pregunta | Respuesta |
|---|---|
| ¿Cómo cambiar el título de un JFrame? | setTitle("Nuevo Título"); |
| ¿Cómo establecer un icono para un JFrame? | setIconImage(new ImageIcon("ruta/a/icono.png").getImage()); |
| ¿Cómo hacer una ventana modal? | setModalExclusionType(Dialog.ModalExclusionType.APPLICATION_EXCLUDE); |
| ¿Cómo cambiar el tamaño de un componente? | Usar los métodos setSize() , setPreferredSize() o setBounds() del componente. |
Personalización de la Apariencia (Look and Feel)
Swing permite personalizar la apariencia de los componentes usando diferentes Look and Feels. Esto permite adaptar la interfaz a diferentes sistemas operativos o preferencias del usuario.
Ejemplo de cómo cambiar al Look and Feel de Metal:
javaimport javax.swing.;import javax.swing.plaf.metal.;public class CambiarLookAndFeel extends JFrame { public CambiarLookAndFeel() { try { UIManager.setLookAndFeel(new MetalLookAndFeel()); } catch (Exception e) { e.printStackTrace(); } // ... resto del código ... }}
Componentes Avanzados
Swing también ofrece componentes más avanzados, como JTable (tablas), JTree (árboles), JList (listas), JProgressBar (barras de progreso), entre otros. Cada uno de estos componentes tiene sus propios métodos y propiedades para su configuración y uso.
Conclusión
La librería Swing de Java ofrece un conjunto poderoso de herramientas para crear interfaces gráficas de usuario robustas y flexibles. Dominar los comandos y técnicas presentados en este artículo proporciona una base sólida para el desarrollo de aplicaciones de escritorio en Java. La práctica y la exploración de los diferentes componentes y gestores de diseño son cruciales para alcanzar un nivel de maestría en el desarrollo de interfaces gráficas con Swing.
Si quieres conocer otros artículos parecidos a Comandos en la librería swing java puedes visitar la categoría Libros y Librerías.
