title: How do I position labels of varying heights in two rows using GridBagLayout?
body: <p>I'm trying to use <code>GridBagLayout</code> to position labels in two rows, but I want some of the labels to span both rows and others to be placed on top of each other.  I need to use <code>GridBagLayout</code> because of the proportional sizing functionality in the <code>weightx</code> and <code>weighty</code> properties of <code>GridBagConstraints</code>.  This is the layout I'm looking for:</p>
  
  <pre>
  +----------+----------+----------+----------+
  |          |          |  labelC  |          |
  |  labelA  |  labelB  |----------|  labelD  |
  |          |          |  labelE  |          |
  +----------+----------+----------+----------+
  </pre>
  
  <p>The problem is that <code>labelE</code> is being placed beneath <code>LabelA</code>.  Here is the layout portion of my code:</p>
  
  <pre>
  GridBagLayout gridbag = new GridBagLayout();
  GridBagConstraints c = new GridBagConstraints();
  this.setLayout(gridBag);
  c.fill = GridBagConstraints.BOTH;
  
  c.gridwidth = 1;
  c.gridheight = 2;
  c.weighty = PANEL_HEIGHT;
  gridbag.setConstraints(labelA, c);
  this.add(labelA);
  
  gridbag.setConstraints(labelB, c);
  this.add(labelB);
  
  c.gridheight = 1;
  c.weighty = TOPROW_HEIGHT;
  gridbag.setConstraints(labelC, c);
  this.add(labelC);
  
  c.gridheight = 2;
  c.gridwidth = GridBagConstraints.REMAINDER;
  c.weighty = PANEL_HEIGHT;
  gridbag.setConstraints(labelD, c);
  this.add(labelD);
  
  c.gridheight = 1;
  c.gridwidth = 1;
  c.weighty = BOTROW_HEIGHT;
  gridbag.setConstraints(labelE, c);
  this.add(labelE);
  
  this.validate();
  </pre>
  
  <p>Any ideas about what I'm missing?</p>