2016-04-28 25 views
0

BorderLayoutがあり、Northパネルで作業しています。北側のパネルの中には、左の画像とFrameの残りの幅を分ける2つのボタンの3つのコンポーネントがあります。今私は別のBorderLayoutでこれを達成しようとしています。ボタンを分割するJPanel - Java Swing

Frameはサイズ変更可能です。

画像はBorderLayout.WESTに割り当てられています。次のコードでは、ボタンだけを含む別のパネルを追加しようとしています。パネルはFrameNORTHレイアウトコンポーネントのCENTERに追加されます。

//create panel to hold buttons 
JPanel btnPanel = new JPanel(); 
btnPanel.setLayout(new BorderLayout()); 

JButton btnMatrix = new JButton("Matrix View"); 
btnPanel.add(btnMatrix); 
JButton btnList = new JButton("List View"); 
btnPanel.add(btnList); 
add(btnPanel); 

ただし、ボタンは両方ともパネル全体を占有しようとします。上記のコードでbtnPanel.setLayout(new BorderLayout());を使用しないで、フローレイアウトにしておくと、ボタンは中央にうまく収まりますが、btnPanelを展開して共有しないでください。

思考?私はJavaのために十分に新しく、最初から間違った方向に進むことができます。

答えて

3
btnPanel.setLayout(new BorderLayout()); 

ボタンをパネルに追加したときに制約を指定していませんでした。両方のボタンがCENTERに追加されます。ただし、CENTERには1つのコンポーネントしか追加できないため、最後に追加されたコンポーネントだけが表示されます。あなたが別のレイアウト試すことができ

btnPanel.setLayout(new GridLayout(0, 2)); 

を次に、各ボタンが同じサイズになりますし、両方のボタンが利用可能なスペースを埋めます。

+0

完全に作業しました。迅速な返信をありがとう! – corbfon