Ja nie wiem czy to może być problem u Ciebie, ale u mnie przez to nie chciało się w ogóle nic wyświetlić (czytaj to: wyświetlić puste okienko, bez żadnych paneli na framie). W metodzie Action w switchu po każdym case w tym wypadku raczej powinno być break, bo bez tego, jeśli wykona się pierwszy case, to wykona się każdy kolejny (również default) dopóki nie napotka właśnie break'a, albo po prostu switch się nie skończy.
Tak czy inaczej mi bez tego po prostu nic się nie pokazywało. Teraz będę próbował zrobić krok kolejny, czyli pokazanie się dowolnego panelu, bo na razie mam puste okienko.
Nawiasem mówiąc (bez urazy dla Ciebie) ten kod GUI jest trochę dla mnie mało czytelny i być może dlatego nie potrafię znaleźć problemu. Może to moja ułomność, a może trzeba przejść specjalne szkolenie, ale ja zawsze miałem problemy ze Swingiem (nigdy nie mogłem się z nim dogadać kiedy pisałem z palca) i czasami jakaś kolejność wywołania funkcji na danym panelu, czy innym komponencie powodowała że program się nie uruchamiał, albo sypał błędami (często właśnie NPEx). Kolejność, która w moim odczuciu nie powinna mieć wpływu na siebie, niestety miała. Może i tutaj masz podobnie, może warto się zainteresować sposobem w jaki tworzysz kod GUI, może właśnie zanim tworzysz rzeczywisty obiekt, wywołuje się pod spodem Action() i stąd NPEx. Dlatego zawsze używam albo graficznego builder'a (pod Eclipse'a chyba najlepszy to WindowBuilder, może pod NetBeansa też to jest) i dzięki temu nie ma jakichś niedociągnięć, a i można się douczyć pisania ładnego kodu pod Swinga. Albo druga opcja, używanie biblioteki SWT (taka reklama tej natywnej biblioteki), gdzie nigdy nie miałem problemów ze Swinga, a nawet uważam że jest bardziej logicznie stworzona i mi osobiście się przyjemniej w niej kodzi pod Java. Sorry za spam, ale jestem dość mocno cięty na Swinga za wiele godzin jakie straciłem nad kodem, który nie powinien mieć wpływu, ale to tylko wiedziałem ja, Swing wiedział swoje.
// EDIT ----------
Nie jestem w stanie wyjaśnić co jest nie tak w Twoim kodzie (patrz wyżej, nie rozumiem pewnych zachowań Swinga, więc pewnie dlatego) ale w załączniku masz poprawiony po mojemu Twój kod i działa normalnie. Może analiza tego co zrobiłem Tobie pomoże. Generalnie pewne wywołania przerzuciłem do konstruktorów klas paneli MainMenuGUI i OptionMainMenuGUI, ale nie sądzę żeby to miało wpływ (ale jak ponarzekałem sobie wyżej, ja po Swingu wszystkiego się mogę spodziewać). Natomiast wydaje mi się, że klasa Main mogła spowodować poprawę. To co zrobiłem, to stworzyłem jeden główny panel (Twój actualPanel), który ustawiam na frame'a za pomocą setContentPane(). I na ten panel nakładam dwa powyższe i zaczyna działać. I teraz w Action w zależności od parametru ustawiam odpowiednie Visible na menu główne lub opcje. Niestety, nie potrafię wyjaśnić i zrozumieć co w Twoim kodzie jest nie tak, bo u mnie Twój kod w ogóle się nie uruchamiał. Po prostu się włączał i od razu kończył, zanim cokolwiek wyświetlił (przez switcha który nie miał breaków i przez to trafiał na System.exit(1). A po tej poprawce pokazywał puste okienko).