GridBagLayout无法正常工作

时间:2014-04-20 18:53:26

标签: java swing layout-manager gridbaglayout

你能不能看看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);

顺便说一句,我几乎什么都不懂。 我的理由是:

  1. 我设置c.fill = GridBagConstraints.BOTH; 然后,所有空间应在所有面板之间进行水平和垂直分割。

  2. c.weightx = 0.5;取自tutorial。它们将三个按钮之间的水平空间分开,并且出于某些原因,对于所有三个按钮使用权重0.5。好吧,让我们做同样的事,虽然它为什么它应该是0.5是个谜。

  3. c.weighty = 1.0;应该占据所有空间。

  4. 好吧,不工作。你能否澄清一下我做错了什么。

1 个答案:

答案 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相关的代码。