JFrame y JPanel en Swing
JFrame y JPanel
JFrame
JFrame es una ventana de nivel superior en una aplicación Swing. Proporciona el marco principal donde se colocan otros componentes de la interfaz de usuario.
Se utiliza como el contenedor principal de una aplicación de escritorio. JFrame incluye la barra de título, bordes y botones de minimizar, maximizar y cerrar.
Uso
- Se crea una instancia de
JFrame
. - Se configura su tamaño, título y operación de cierre.
- Se añaden otros componentes a su contenido.
- Se hace visible.
Ejemplo:
1import javax.swing.*;2
3public class EjemploJFrame {4 private JFrame frame;5
6 public EjemploJFrame() {7 inicializarComponentes();8 }9
10 private void inicializarComponentes() {11 // Crear y configurar el JFrame12 frame = new JFrame("Mi Primera Aplicación");13 frame.setSize(400, 300);14 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);15
16 // Añadir un componente simple17 JLabel etiqueta = new JLabel("Bienvenido a Swing", SwingConstants.CENTER);18 frame.add(etiqueta);19 }20
21 public void mostrar() {22 frame.setVisible(true);23 }24
25 public static void main(String[] args) {26 SwingUtilities.invokeLater(() -> {27 EjemploJFrame app = new EjemploJFrame();28 app.mostrar();29 });30 }31}
Información:
- Creamos un JFrame con el título “Mi Primera Aplicación”.
- Configuramos su tamaño a 400x300 píxeles.
- Establecemos la operación de cierre para terminar la aplicación cuando se cierra la ventana.
- Añadimos una etiqueta simple al centro del frame.
- Finalmente, hacemos visible el frame en el método
mostrar()
.
JPanel
JPanel es un contenedor ligero que se utiliza para organizar y agrupar otros componentes.
Se usa para dividir la interfaz de usuario en secciones lógicas, aplicar diferentes layouts a grupos de componentes y crear diseños complejos.
Uso
- Se crea una instancia de
JPanel
. - Se configura su layout si es necesario.
- Se añaden componentes al panel.
- Se añade el panel a un contenedor de nivel superior (como
JFrame
) o a otro panel.
Ejemplo:
1import javax.swing.*;2import java.awt.*;3
4public class EjemploJPanel {5 private JFrame frame;6
7 public EjemploJPanel() {8 inicializarComponentes();9 }10
11 private void inicializarComponentes() {12 frame = new JFrame("Ejemplo JPanel");13 frame.setSize(400, 300);14 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);15 frame.setLayout(new BorderLayout());16
17 // Crear y configurar paneles18 JPanel panelSuperior = crearPanelSuperior();19 JPanel panelCentral = crearPanelCentral();20 JPanel panelInferior = crearPanelInferior();21
22 // Añadir paneles al frame23 frame.add(panelSuperior, BorderLayout.NORTH);24 frame.add(panelCentral, BorderLayout.CENTER);25 frame.add(panelInferior, BorderLayout.SOUTH);26 }27
28 private JPanel crearPanelSuperior() {29 JPanel panel = new JPanel();30 panel.setBackground(Color.WHITE);31 panel.add(new JLabel("Panel Superior"));32 return panel;33 }34
35 private JPanel crearPanelCentral() {36 JPanel panel = new JPanel(new GridLayout(2, 2, 5, 5));37 for (int i = 1; i <= 4; i++) {38 panel.add(new JButton("Botón " + i));39 }40 return panel;41 }42
43 private JPanel crearPanelInferior() {44 JPanel panel = new JPanel();45 panel.setBackground(Color.LIGHT_GRAY);46 panel.add(new JButton("Aceptar"));47 panel.add(new JButton("Cancelar"));48 return panel;49 }50
51 public void mostrar() {52 frame.setVisible(true);53 }54
55 public static void main(String[] args) {56 SwingUtilities.invokeLater(() -> {57 EjemploJPanel app = new EjemploJPanel();58 app.mostrar();59 });60 }61}
Información:
- Creamos tres
JPanels
diferentes: superior, central e inferior. - Cada panel tiene su propio propósito y layout:
- El panel superior tiene un fondo blanco y contiene una etiqueta.
- El panel central utiliza
GridLayout
(se verá en el futuro) para organizar cuatro botones en una cuadrícula 2x2. - El panel inferior tiene un fondo gris claro y contiene dos botones.
- Los paneles se añaden al
JFrame
utilizandoBorderLayout
(se verá en el futuro). - Finalmente, hacemos visible el frame en el método
mostrar()
.