私の知る限り、GridBagLayoutでは実行できません。幸いなことに、選択肢があります。MiGLayout
と同様に機能しGridBagLayout
ますが、より強力で表現力豊かです。また、セルベースであり、セルおよびセルの行/列の最小、優先、および最大サイズを設定できます。
これは私の好みでは行の制約に大きく依存しており、必要なものに関するいくつかの仮定に基づいているため、独自のソリューションを検討することをお勧めしますが、次に例を示します。
JPanel panel = new JPanel(new MigLayout("flowy, fillx, filly", "[fill, grow]", "[fill, 0:100:300][fill, 0:100:max(100%,300)]"));
JPanel redPanel = new JPanel();
redPanel.setBackground(Color.RED);
JPanel bluePanel = new JPanel();
bluePanel.setBackground(Color.BLUE);
panel.add(redPanel);
panel.add(bluePanel);
JFrame frame = new JFrame();
frame.add(panel);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);