¿Cómo hacer que un botón llame a JPanels de otro Void?

Hola amigos quisiera que me ayudasen con el siguiente error:
Resulta que tengo dos paneles separados en void pero sus botones (Que hace visible al otro) me dan error.


En esa parte están los errores.
public void menusDet()
public void menuPrin()


Aquí esta el código

public class FMform {
 public static void main(String[] args) {
 EventQueue.invokeLater(new Runnable() {
@Override
 public void run() {
 try {
 FMform window = new FMform();
 window.frame.setVisible(true);
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
 });
 }
 public FMform() {
 initialize();
 menuPrin();
 menusDet();
 }
 public void initialize() {
 frame = new JFrame();
 frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
 frame.setBounds(100, 100, 450, 300);
 frame.getContentPane().setLayout(new CardLayout(0, 0));
 frame.addWindowListener(new WindowAdapter() {
@Override
 public void windowClosing(WindowEvent we) {
 JOptionPane.showMessageDialog(null,"Gracias",null, JOptionPane.INFORMATION_MESSAGE);
 System.exit(0);
 }
 });
 }
 public void menuPrin() {
 final JPanel MainPane = new JPanel();
 frame.getContentPane().add(MainPane, "name_24955855700893");
 MainPane.setLayout(null);
JButton btnAceptar = new JButton("Aceptar");
 btnAceptar.setBounds(345, 235, 89, 23);
 MainPane.add(btnAceptar);
 btnAceptar.addActionListener(new ActionListener() {
@Override
 public void actionPerformed(ActionEvent arg0) {
 MainPane.setVisible(false);
 Item1Det.setVisible(true); //Aqui me marca error, como si no existiera el panel
 }
 });
} //Cierro el void
public void menusDet() {
 final JPanel Item1Det = new JPanel();
 frame.getContentPane().add(Item1Det, "name_27068341279622");
 Item1Det.setLayout(null);
JButton btnMenuDet1 = new JButton("Menú");
 btnMenuDet1.setBounds(345, 238, 89, 23);
 Item1Det.add(btnMenuDet1);
 btnMenuDet1.addActionListener(new ActionListener() {
@Override
 public void actionPerformed(ActionEvent arg0) {
 MainPane.setVisible(true); //Aqui me marca error, como si no existiera el panel
 Item1Det.setVisible(false);
 }
 });
 }//Cierro el void
}//Cierro la clase

Si me preguntan porque los tengo separados, es porque necesito hacerlos así, porque si los junto me da error de limite de la clase 65535 bytes (Tengo mas paneles pero todos me dan el mismo error).
Muchas gracias de antemano.

Añade tu respuesta

Haz clic para o