レイアウトについて質問させてください。

(1)
Container contain = getContentPane() ;
contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS));
contain.add(new JButton("ボタン1")) ;
contain.add(new JButton("ボタン2")) ;

(2)
Container contain = getContentPane() ;
contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS));
contain.add(new JButton("ボタン1")) ;
JPanel p = new JPanel() ;
p.add(new JButton("ボタン2")) ;
contain.add(p) ;

(1)ではボタンが二つとも左端に表示されるのですが、(2)は両方とも真ん中になります。
なぜ両方とも左寄せにならないのか悩んでます。これってどうしてですか?