2

とても単純な問題ですが、それを実装する簡単な方法が見つかりません。基本的に、JPanel の 3 つのインスタンス (北、南、中央) があります。通常、ウィンドウの高さで遊ぶと、中央のパネルが可変になります。私が望むのは、中央パネルの代わりに南パネルの高さを可変にすることです。

コードは次のとおりです。

public class TestCode {

public static void main(String[] args) {

    JFrame window = new JFrame("Test");
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setSize(300, 300);

    JPanel panelUp = new JPanel();
    JPanel panelCenter = new JPanel();
    JPanel panelDown = new JPanel();

    window.add(panelUp, BorderLayout.NORTH);
    window.add(panelCenter, BorderLayout.CENTER);
    window.add(panelDown, BorderLayout.SOUTH);

    panelUp.setBackground(new Color(200, 240, 200));
    panelCenter.setBackground(new Color(240, 200, 200));
    panelDown.setBackground(new Color(200, 200, 240));

    panelUp.setPreferredSize(new Dimension(panelUp.getWidth(), 50));
    panelCenter.setPreferredSize(new Dimension(panelCenter.getWidth(), 100));
    panelDown.setPreferredSize(new Dimension(panelDown.getWidth(), window.getHeight() - 150));

    window.setVisible(true);
}

}
4

4 に答える 4

3
***************BorderLayout************************
*  ********BorderLayout*in*PAGE_START************ *
*  *                                            * *
*  *   Component in PAGE_START                  * *
*  *                                            * *
*  *   Component in PAGE_END                    * *
*  *                                            * *
*  ********************************************** *
*                                                 *
*      Component in CENTER                        *
*                                                 *
***************************************************

レイアウトを組み合わせて必要なレイアウトを作成する方法の詳細については、ネストされたレイアウトの例を参照してください。

于 2013-06-13T11:08:40.237 に答える
2

私が望むのは、中央パネルの代わりに南パネルの高さを可変にすることです。

于 2013-06-13T09:42:17.287 に答える
0

北パネルと中央パネルの最大サイズ( setMaximumSize ) を設定してみましたか? またはおそらくsetSize直接。

于 2013-06-13T09:42:09.303 に答える