Cambiar de Jframe Java [SOLUCIONADO]

Alterando JFrame en Java

Trabajando con JFrame en el entorno de programación Java, es común que nos encontremos en situaciones donde necesitamos cambiar o modificar entre diferentes JFrames de nuestra aplicación. En esta ocasión, nos concentraremos en entender cómo se lleva a cabo este proceso.

¿Qué es JFrame?

Primero, es importante entender qué es JFrame. JFrame es una clase en Java Swing que se usa comúnmente para crear ventanas. Es una de las muchas clases de widgets disponibles en Swing para crear interfaces de usuario ricas e interactivas en Java.

Cambiando entre JFrames

Al trabajar con múltiples JFrames, a veces es necesario cambiar entre ellos. Esto puede ser especialmente útil en aplicaciones donde se tienen diferentes funcionalidades distribuidas entre distintas JFrames. Ahora bien, veamos cómo cambiar de un JFrame a otro.

  public class FrameUno extends JFrame {
    JButton btn_NuevoFrame = new JButton("Abrir Nuevo Frame");
    public FrameUno() {
        add(btn_NuevoFrame);
        btn_NuevoFrame.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                FrameDos frameDos = new FrameDos();
                frameDos.setVisible(true);
                dispose();
            }
        });
    }
}

En el codigo mencionado, hemos añadido un botón a nuestro actual JFrame (FrameUno) que, al hacer click, creará un nuevo objeto de la otra JFrame (FrameDos), lo hará visible y posteriormente, cerrará la FrameUno.

public class FrameDos extends JFrame {
    public FrameDos() {
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    }
}

El código anterior es una simple clase JFrame, denominada FrameDos. Observe que estamos estableciendo el comportamiento de cierre por defecto en DISPOSE_ON_CLOSE. Esto garantiza que, cuando se cierre FrameDos, solo se deshaga de este frame en lugar de terminar toda la aplicación.

Alternativas a cambiar JFrame

Una buena practica, en lugar de cambiar de JFrame constantemente, es hacer uso de Paneles (JPanel). Los Paneles nos permiten cambiar el contenido de la pantalla sin tener que abrir y cerrar frames constantemente. De esta manera, podemos optimizar el rendimiento de nuestras aplicaciones al prescindir de recursos que no se están utilizando.

public class MainFrame extends JFrame {
    CardLayout cardLayout = new CardLayout();
    JPanel panelContenedor = new JPanel(cardLayout);
    
    public MainFrame() {
        PanelUno panelUno = new PanelUno();
        PanelDos panelDos = new PanelDos();
        
        panelContenedor.add(panelUno, "Panel Uno");
        panelContenedor.add(panelDos, "Panel Dos");
        
        add(panelContenedor);
        
        cardLayout.show(panelContenedor, "Panel Uno"); 
    }
}

En este código, se asume que PanelUno y PanelDos son subclases de JPanel. Notará que estamos utilizando un CardLayout. Este es un administrador de diseño muy útil que nos permite cambiar entre diferentes ‘tarjetas’ o paneles.

En resumen, aprender a navegar entre diferentes JFrames es una habilidad esencial al desarrollar aplicaciones en Swing. Sin embargo, es importante tener en cuenta que, a menudo, es más conveniente y óptimo utilizar JPanel combinado con CardLayout para cambiar el contenido de la pantalla.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad