Hola, te envio la siguiente solucion, espero te sea de ayuda:
import javax.swing.*;
class Frame1 extends JFrame{
JButton buton1 = new JButton("Hazme Click");
Frame2 frame;
public Frame1(){
getContentPane().setLayout(null);
frame = new Frame2(this);
buton1.setBounds(200,100,100,25);
buton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
frame.setVisible(true);
setVisible(false);
}
});
getContentPane().add(buton1);
setSize(800,600);
}
public static void main(String[] wil){
Frame1 f = new Frame1();
f.setVisible(true);
}
}
import javax.swing.*;
class Frame2 extends JFrame{
Frame1 padre;
JButton buton2 = new JButton("Volver");
public Frame2(Frame1 parent){
padre = parent;
getContentPane().setLayout(null);
buton2.setBounds(100,50,100,25);
getContentPane().add(buton2);
buton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
setVisible(false);
padre.setVisible(true);
}
});
setLocation(200,100);
setSize(400,200);
}
}
SALUDOS Wilfredo Vargas Almendras