title: Vertical JSeparator incorrectly positioned by GridBagLayout
body: <p>Somewhat related to <a href="https://stackoverflow.com/questions/2425729/jseparator-wont-show-with-gridbaglayout">this question</a>.</p>
  
  <p>I'm trying to create a window with two panels that have widths in the ratio 2:1 (with the left-side panel wider than the right-side one) and I'm using the GridBagLayout.</p>
  
  <p>Basically, something that looks like this:</p>
  
  <pre>
   ____________________
  |            |       |
  | leftPanel  |right- |
  |            |Panel  |
  |         |->|       |
  |_________|__|_______|
            |
            |
       both panels separated
       by a vertical separator
  </pre>
  
  <p><br/>
  Here is the code that creates the top-level <code>JPanel</code> (I've called it <code>totalGui</code>) holding both <code>leftPanel</code> and <code>rightPanel</code>:</p>
  
  <pre><code>private JPanel createContentPane(){ //creates a top-level JPanel
                                      //that is returned to the JFrame's
                                      //setContentPane() method
      int WINHEIGHT = 600;
      int WINWIDTH = 800;
      JPanel totalGui = new JPanel(); //this is the JPanel that will be returned
      totalGui.setBackground(Color.white);
      totalGui.setMinimumSize(new Dimension(WINWIDTH,WINHEIGHT));
      totalGui.setPreferredSize(new Dimension(WINWIDTH,WINHEIGHT));
      totalGui.setMaximumSize(new Dimension(WINWIDTH,WINHEIGHT));
      totalGui.setLayout(new GridBagLayout());
      totalGui.setOpaque(true);
      GridBagConstraints c = new GridBagConstraints();
  
      /* totalGui (the top-level JPane) has two JPanes called
         leftPanel and rightPanel. The widths of leftPanel and rightPanel
         are in the ratio 2:1. So, leftPanel takes up 2/3rd of the totalGui's
         width, and rightPanel gets the remaining 1/3rd */
  
      /* Top-level left panel */
      JPanel leftPanel = new JPanel();
      int LEFTPANELWIDTH = WINWIDTH*2/3;
      leftPanel.setMinimumSize(new Dimension(LEFTPANELWIDTH,WINHEIGHT));
      leftPanel.setPreferredSize(new Dimension(LEFTPANELWIDTH,WINHEIGHT));
      leftPanel.setMaximumSize(new Dimension(LEFTPANELWIDTH,WINHEIGHT));
      c.gridx = 0;
      c.gridy = 0;
      c.gridheight=4; //both leftPanel and rightPanel are 4 cells high
      c.gridwidth=2; //leftPanel is 2 cells wide, rightPanel is 1 cell wide (code below)
      c.fill = GridBagConstraints.VERTICAL;
      totalGui.add(leftPanel, c);
  
      /* Vertical separator between leftPanel and rightPanel */
      c.gridx = 2; //'2' because leftPanel is 2 cells wide and the separator's leading
                   //edge must lie in the third cell (gridx = 2) if it is to be
                   //sandwiched between leftPanel and rightPanel
      c.gridy = 0;
      c.gridwidth=0; //I've also tried gridwidth=1, but it doesn't solve the problem
      c.fill = GridBagConstraints.NONE;
      c.anchor=GridBagConstraints.CENTER;
      JSeparator verticalsep = new JSeparator(SwingConstants.VERTICAL);
      verticalsep.setPreferredSize(new Dimension(6,WINHEIGHT-10)); //the 'WINHEIGHT-10' bit is purely cosmetic
                                                                   //I just wanted some space between the
                                                                   //separator edges and the window border
                                                                   //(also why the anchor is set to CENTER)
      totalGui.add(verticalsep,c); //PROBLEM: verticalsep is not displayed where I expected it to be;
                                   //please see attached image in post
  
      /* Top-level right panel */
      JPanel rightPanel = new JPanel();
      int RIGHTPANELWIDTH = WINWIDTH*1/3;
      rightPanel.setBackground(Color.blue);
      rightPanel.setMinimumSize(new Dimension(RIGHTPANELWIDTH,WINHEIGHT));
      rightPanel.setPreferredSize(new Dimension(RIGHTPANELWIDTH,WINHEIGHT));
      rightPanel.setMaximumSize(new Dimension(RIGHTPANELWIDTH,WINHEIGHT));
      c.gridx = 2;
      c.gridy = 0;
      c.gridwidth=1; //rightPanel is 1 cell wide, leftPanel is 2 cells wide (code above)
      c.gridheight=4; //both leftPanel and rightPanel are 4 cells high
      c.fill = GridBagConstraints.VERTICAL;
      totalGui.add(rightPanel, c);
  
      return totalGui;
  }
  </code></pre>
  
  <p><br/>
  My problem is that the separator is not being shown at the correct location. Here's what I get: <a href="https://i.stack.imgur.com/XRww2.png" rel="nofollow noreferrer">link to image</a> (sorry, I don't have enough reputation to post images).</p>
  
  <p><br/>
  Can anyone tell me what I'm doing wrong?</p>
  
  <p>Many thanks for any help you can give.</p>