你能不能看看this picture. 我已经表达了我想要的和我所拥有的。
这是我的代码的一些摘录:
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.weightx = 0.5;
c.weighty = 1.0;
c.fill = GridBagConstraints.BOTH;
commonPanel.add(new Panel(new GridBagLayout()), c);
c.gridx = 1;
c.gridy = 0;
c.weightx = 0.5;
c.weighty = 1.0;
c.fill = GridBagConstraints.BOTH;
commonPanel.add(new Panel(new GridBagLayout()), c);
c.gridx = 2;
c.gridy = 0;
c.weightx = 0.5;
c.weighty = 1.0;
c.fill = GridBagConstraints.BOTH;
commonPanel.add(new Panel(new GridBagLayout()), c);
顺便说一句,我几乎什么都不懂。 我的理由是:
我设置c.fill = GridBagConstraints.BOTH;
然后,所有空间应在所有面板之间进行水平和垂直分割。
c.weightx = 0.5;
取自tutorial。它们将三个按钮之间的水平空间分开,并且出于某些原因,对于所有三个按钮使用权重0.5。好吧,让我们做同样的事,虽然它为什么它应该是0.5是个谜。
c.weighty = 1.0;
应该占据所有空间。
好吧,不工作。你能否澄清一下我做错了什么。
答案 0 :(得分:0)
我尝试使用您的代码段。这对我来说可以。所以问题应该在你的" commonPanel"上。我做的是,我添加了这个" commonPanel"通过设置GridBagConstaints到内容窗格。
frame.getContentPane().setLayout(GridBagLayout());
GridBagConstraints x = new GridBagConstraints();
x.weightx = 1.0;
x.weighty = 1.0;
x.fill = GridBagConstraints.BOTH;
JPanel commonPanel = new JPanel(new GridBagLayout());
frame.getContentPane().add(commonPanel, x);
我意识到,您应该更改与commonPanel相关的代码。