2011-10-19 8 views
0

私は次のフレームを形成しようとしています:不足しているインナーパネルを視覚化するには?

メインフレームはBorderLayoutを使います。

このフレームに、BoxLayoutを使用するPanelを追加しました。これをP1と呼んでいます。

私がP1に追加するパネルは何らかの理由で、プログラムを実行しても表示されません。

さらに紛らわしいことは、P1がBoxLayoutの代わりにGridLayoutを使用すると、P1に追加したすべてのパネルが表示されることです。

コードで使用されるEventPanelクラスは、Panelを拡張し、SpringLayoutを使用します。

P1を作成する方法はありますか?

ここに関連するコードです:私は

public static void main(String[] args) 
{ 
     //Setting Frame 
     JFrame m_CalendarFrame = new JFrame(); 
     m_CalendarFrame.getContentPane().setLayout(new BorderLayout()); 

     //Setting inner Panel 
     JPanel P1 = new JPanel(); 
     P1.setLayout(new BoxLayout(P1, BoxLayout.Y_AXIS)); 


     EventPanel Ev = new EventPanel("8:00", "16:00", "Bday", "Go party!"); 
     EventPanel Ev2 = new EventPanel("8:00", "16:00", "Java", "Handing Java Project"); 

     //Adding Two pannels into previous inner Panel 
     P1.add(Ev); 
     P1.add(Ev2); 

     m_CalendarFrame.getContentPane().add(P1, BorderLayout.NORTH); 

     m_CalendarFrame.setVisible(true); 

     m_CalendarFrame.setSize(800,800); 


} 

答えて

2

は、問題がたSpringLayoutを使用して、あなたのパネルにあると思います。まず、スイングのチュートリアル(How to Use SpringLayout)を読んで、実際の例と説明を読んでください。

まだ助けが必要な場合は、問題を示すSSCCEを投稿してください。そして簡単に始める。 1つのcomopnent、次に2つ、3つのSpringLayoutを使ってみてください。

0

空き領域管理と関係がありますが、私はそれを自分でテストしていません。 BoxLayoutは描画するコンポーネントに適したサイズを使用し、GridLayoutは描画されるオブジェクト間で利用可能なスペースを均等に分散します。

EventPanelの推奨サイズを指定するとどうなりますか?あなたのコード例に基づいて、あなたのEventPanelインスタンスに好ましいサイズ(800,400)を強制し、BoxLayoutを使用して何かを変更するかどうかを調べることで、これを迅速にテストできます。

関連する問題