据我所知,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);
GBL不会,但[MiGLayout](http://www.miglayout.com)会为你做到这一点。 –