Hola Charmedever:
Un placer volverte a leer y ver tus dudas por aquí. En cuanto al problema he descargado el código que has puesto y no veo ningún problema. Pulsas el botón y se oculta el frame.
El único problema es que no se muestra el marco 2, pero porque habías puesto que era de la clase JInternalFrame en vez de JFrame. Esta clase la podrías usar pero deberías añadirla a algún componente que la contuviera de hay que sea Internal.
Así que simplemente cambié f2 por un JFrame y algunos detallitos más como unos nombres de botones más adecuados.
Te invitaría antes de que siguieras leyendo que realizaras el cambio en tu máquina e intentaras resolverlo por tí mismo. Y sino pues echarle un vistazo al siguiente código que te paso.
Un saludo.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Marcos extends JFrame
{
JFrame f1;
public JFrame f2;
public JButton b1, b2, b3;
Marcos ()
{
this.setSize(400, 400);
f1 = new JFrame ("Marco 1");
//f1.setTitle("Marco 1");
f1.setSize(300,300);
//f1.setVisible(true);
f2 = new JFrame ("Marco 2");
//f2.setTitle("Marco 2");
f2.setSize(300,300);
//f2.setVisible(true);
//f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b1 = new JButton ("Muestra Marco 2");
b2 = new JButton ("Inicio");
b3 = new JButton ("Muestra Marco 1");
//add(b1);
add(b2);
f1.setLayout(new BorderLayout ());
f1.add(b1, BorderLayout.CENTER);
f2.setLayout(new GridLayout (2,2));
f2.add(b3);
//registro de auditores (escuchas)
b1.addActionListener(new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
if (e.getSource()==b1)
{
f2.setVisible(true);
f1.setVisible(false);
}
}
});
b2.addActionListener(new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
if (e.getSource()==b2)
{
f1.setVisible(true);
f2.setVisible(false);
}
}
});
b3.addActionListener(new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
if (e.getSource()==b3)
{
f1.setVisible(true);
f2.setVisible(false);
}
}
});
}
}
class temporal
{
public static void main (String []args)
{
Marcos m2 = new Marcos ();
//m2.setSize(300,300);
m2.setVisible(true);
m2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}