title: Java GridBagLayout does not fill frame horizontally
body: <p>I am writing the GUI for a chat program. I can't seem to get the <code>scroller</code> to fill the frame horizontally and vertically and the <code>messageInput</code> to fill the frame horizontally. This is how it looks:</p>
  
  <p><a href="https://i.stack.imgur.com/bUtro.png" rel="noreferrer"><img src="https://i.stack.imgur.com/bUtro.png" alt="enter image description here"></a></p>
  
  <pre><code>import javax.swing.*;
  import java.awt.*;
  
  public class GUI extends JFrame{
  
  private JPanel panel;
  private JEditorPane content;
  private JTextField messageInput;
  private JScrollPane scroller;
  private JMenu options;
  private JMenuBar mb;
  private JMenuItem item;
  
  public GUI(){
      /** This is the frame**/
      this.setPreferredSize(new Dimension(380,600));
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
      panel = new JPanel();
      panel.setLayout(new GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      c.fill = GridBagConstraints.HORIZONTAL;
  
      /** This is where the context shows up **/
      content = new JEditorPane();
      content.setEditable(false);
  
      /** Scroller that shows up in the context JEditorPane **/
      scroller = new JScrollPane(content);
      c.weightx = 0.0;
      c.weighty = 0.0;
      c.gridx = 0;
      c.gridy = 0;
      panel.add(scroller, c);
  
      /** This is where you type your message **/
      messageInput = new JTextField();
      c.weightx = 0.0;
      c.weighty = 0.0;
      c.gridx = 0;
      c.gridy = 1;
      c.weighty = 0.5;
      panel.add(messageInput, c);
  
      mb = new JMenuBar();
      options = new JMenu("Options");
      mb.add(options);
      this.setJMenuBar(mb);
  
      this.add(panel);
      this.pack();
      this.setVisible(true);
  
  }
  
  
  
  public static void main(String[] args) {
      new GUI();
  }
  }
  </code></pre>