Have you looked at CardPanel?
As for instantiating game state objects I actually have a class called GameState that holds everything I need regarding the game. Then I instantiate it and hold a reference within my main frame instance. Thus it's accessible wherever I need it.
Naturally the GameState class doesn't include GUI code, loading/saving, etc... just the raw data that represents the guts of the game itself.
My golden rule is "get it working first". Then refactor if it smells really bad or if you think of a better way to do it later on.
Cheers for the response Loom!
I have had a look at the CardPanel layout manager earlier tonight, but I think after working on this for like 10 hours straight my ability to retain any sort of information is very limited! haha
I manage to get everything working, then look at the code, and re-do the code to make it more readable and cleaner, which is a endless cycle.
I think I have to study more good examples of class structure? (Am I even making sense?) haha, I think it's bed time.