2012-04-08 5 views
1

私は、画面の上半分に2、下半分に1という3つのJPanelがあるプログラムを作成しています。ここではそのようにそれらを配置するためのコードです:
people.setBounds(0, 0, Math.round(getWidth()/3), Math.round(getHeight()/2));
resources.setBounds(people.getX() + people.getWidth(), 0, Math.round(getWidth()/3), Math.round(getHeight()/2));
neighboring.setBounds(resources.getX() + resources.getWidth(), 0, Math.round(getWidth()/3), Math.round(getHeight()/2));
はしかし残念ながら、これは私が得る結果である:私は完全にウィンドウに合わせてパネルを取得しようとしているが、あなたのようにしてenter image description here
見ることができる、彼らは予想よりも少し大きかった。いくつかの助けてください?JPanel望ましくない位置および/またはサイズ

答えて

3

レイアウトマネージャはsetBoundsではなく、レイアウトを使用して作業を行います。あなたのGUIは、単純なGridLayoutを使用するいくつかのJPanelをネストすることによって、最小のコードで作成することができます。詳細については、Lesson: Laying Out Components Within a Container

+0

でもいいですが、GridLayoutを使って、私の "Neighboring Civilizations"パネルを2行目にすることはできません。 GridBagLayoutを使用すると、サイジングは何らかの理由で実際には非常に小さくなります。 –

+0

@Daniel - なぜJPanelを2行目にすることはできませんか? GUI全体では、2行1列に対してGridLayout(2,1)が使用されます。次に、上の行に、1行、2列を表すGridLayout(1,2)を使用するJPanelを追加します。上の行のパネルには、 "...の人と人"のJPanelsを追加し、メインGUIの一番下の行に "Neighboring Civ ..."というJPanelを追加します。重要な点は、独自のレイアウトを使用する* JPanelを入れ子にすることです。 –

+0

私は実際に別のパネル( "統計")を考えました - 私はちょうど新しいGridLayout(2、2)を作成し、それは完全に動作します。ありがとう! –

関連する問題