2011-11-08 19 views
1

メインフレームと3つのパネルがあります。これらの3つのパネルをメインフレームに追加したいと思います。しかし、そのうち2つだけが追加されています。 3番目のものはありません。なぜ私は理解できません。助けてもらえますか?パネルがメインフレームに追加されない

 setLayout(new GridBagLayout()); 
     GridBagConstraints gbc=new GridBagConstraints(); 
     gbc.gridwidth=GridBagConstraints.REMAINDER; 
     gbc.gridheight=GridBagConstraints.RELATIVE; 
     gbc.anchor=GridBagConstraints.NORTHWEST; 
     gbc.fill=GridBagConstraints.BOTH; 
     gbc.weightx=gbc.weighty=1;  
     add(topPanel1, gbc); 
     add(bottomPanel1, gbc); 
     gbc.gridheight=GridBagConstraints.REMAINDER; 
     add(buttonsPanel, gbc); 

上記のコードは、フレームのコンストラクタです。

答えて

1

希望するレイアウトに従って、gridxまたはgridyの値を設定する必要があります。 など。あなたは動作が指定されていないgridx/y値を設定しない場合(時にはそれが動作する場合があります)

gbc.gridx=0; 
gbc.gridy=0; 
add(topPanel1, gbc); 
gbc.gridy++; 
add(bottomPanel1, gbc); 
gbc.gridy++; 
add(buttonsPanel, gbc); 

:あなたがコンポーネントを配置したい場合は、垂直、このような何かを行います。

1

3つのパネルを1つずつ追加する場合は、gbc.gridheight=GridBagConstraints.RELATIVE;ステートメントを削除する必要があります。

関連する問題