我想用java编写一个简单的文本编辑器。如何使用GridBagLayout创建3个可变高度的JPanels顶部
我组织了我的布局,并得出结论,我基本上需要3个JPanel,一个在另一个之上。第一个和第二个将是非常短的高度,因为它们将分别是菜单栏和JPanel,分别包含2个JLabels。 中间一个需要是最高的那个,因为所有的文本都会包含在其中。
我想我需要使用一个GridBagLayout,但这不起作用,我需要它们占据比小数据大10倍的大数据。它们都将利用JFrame提供的宽度。
到目前为止的代码片段 -
GridBagConstraints gbc = new GridBagConstraints
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridx = 0;
gbc.gridy = 0;
mainFrame.add(upperGrid, gbc);
gbc.gridx = 0;
gbc.gridy = 1;
gbc.gridheight = 10;
mainFrame.add(upperGrid, gbc);
gbc.gridx = 0;
gbc.gridy = 11;
mainFrame.add(upperGrid, GBC);
我得到的结果是这样的 -
1)为了更好地帮助越早,张贴[MCVE]或[简短,独立,正确的例子](http://www.sscce.org/)。 2)以最小尺寸提供ASCII艺术或简单的GUI图形*图形,并且如果可调整大小,则具有更大的宽度和高度。 –
我认为你可以通过为['gbc.weighty'](https://docs.oracle.com/javase/8/docs/api/java/awt/GridBagConstraints.html#weighty)使用不同的值来达到目的。 –
当设置gbc.weighty = 1.0时,组件之间的垂直间距'增加'了一点,但我希望它们坚持JFrame的边框,它们应该拼凑所有空间,但增加组件内部的区域,而不是在其他组件的边界之间。 – Thomas