2012-02-24 11 views
0

JPanelはJFrameの中にあります(しかし、それらは同じサイズではなく、JFrameはフルスクリーンです)。 JPanelには、小さな正方形(JPanels)が動的に追加されるため、FlowLayoutがあります。 JFrameのサイズを変更するまで、その正方形はうまく配置されています(JPanelが終了すると次の行に移動します)。その後、その四角形が1行で表示され、サイズを変更します。 JPanelの永続的なサイズを維持するにはどうすればよいですか? JFrameのLayoutManagerはMigLayoutです。JPanelとFlowLayout自体のサイズ変更

答えて

2

可能な解決策:getPreferredSize()メソッドをオーバーライドして定数Dimensionを戻します。

public class MyPanel extends JPanel { 
    private static final int PANEL_W = 400; 
    private static final int PANEL_H = 300; 

    public MyPanel() { 
     // ... etc... 
    } 


    @Override 
    public Dimension getPreferredSize() { 
     return new Dimension(PANEL_W, PANEL_H); 
    } 

    // ... etc... 
} 
+0

問題は、私はJPanelのは、成長して作られたので、私は(そう寸法は、画面のサイズに依存)画面に合わせて、すべての可能な場所を取るために、事前の幅と高さを定義することはできません、です。具体的には、私のJFrameは2つのカラムに分かれています(MigLayoutによる)。最初は永久的なサイズ、もう1つはすべてのスペースを残しています。 – user1091733

+0

さらに、このコードは機能しません。 JPanelのサイズを定義しても、ウィンドウのサイズを変更するかJFrameでvalidate()関数を呼び出すと変更されます。 – user1091733

関連する問題