Se http://java.sun.com/docs/books/tutorial/uiswing/index.html
Men rent generellt bör du använda setPreferedSize(Dimension d) istället. Du bör även göra validate() på topcontainern.
EDIT:
Läste lite i specen. Man skall ALDRIG göra pack() om man har gjort setSize() eller setPreferdSize() om man inte har subkomponenter som alla har storleken specifiserad.
pack() packar nämeligen ihop allt till så litet som subkomponenterna har begärt.
Om man alltså gör en JFrame top som man skriver top.setSize(100,100) i och sedan gör top.add(new JPanel()) och gör top.pack() så blir den minimal.