title: Swing GridBagLayout acting out
body: <p>In a program I'm writing I want to have 10 text fields aligned vertically.
  Instead I get this:</p>
  
  <p><a href="https://i.stack.imgur.com/Zvleu.png" rel="nofollow"><img src="https://i.stack.imgur.com/Zvleu.png" alt="What it looks like"></a></p>
  
  <p>code here:</p>
  
  <pre><code>import java.awt.*;
  import java.util.Random;
  import javax.swing.*;
  import java.awt.event.*;
  
  public class Gsb extends JFrame {
  
      JTextField word1;
      JTextField word2;
      JTextField word3;
      JTextField word4;
      JTextField word5;
      JTextField word6;
      JTextField word7;
      JTextField word8;
      JTextField word9;
      JTextField word10;
      JButton gofor;
      JButton rego;
      JTextArea Stuff;
      JPanel panel;
      JPanel texts;
      JPanel buttons;
      JButton Quit;
      JPanel bigt;
      String[] words = new String[20];
      static int[] randnums = new int[20]; 
  
      int i = 0;
  
      public static void main(String[] args) {
  
          new Gsb();
          Random Rand = new Random();
  
          int counter = 0;
          int rand;
          int[] pick = new int[20];
          for(int i = 0; i &lt; 20; i++)
          {
              rand = Rand.nextInt(20) + 1;
              if (CheckForDuplicate(pick, rand, counter))
              {
                  pick[i] = rand;
                  counter++;
              }
              else
              {
                  i--;
              }
          }
          for(int p = 0; p &lt; 20; p++) {
              randnums[p] = pick[p] - 1;
          }
      }
  
      static boolean CheckForDuplicate(int[] array, int number, int counter)
      {
          for (int i = 0; i &lt; counter; i++)
          {
              if (array[i] == number)
              {
                  return false;
              }
          }
  
          return true;   
      }
  
      public Gsb() {
  
          Toolkit tk = Toolkit.getDefaultToolkit();
          Dimension dim = tk.getScreenSize();
  
          int xPos = (dim.width / 2) - (this.getWidth() / 2);
          int yPos = (dim.height / 2) - (this.getHeight() / 2);
          this.setLocation(xPos, yPos);
          GridBagConstraints c = new GridBagConstraints();
          GridBagConstraints d = new GridBagConstraints();
          this.setSize(500, 500); 
          this.setTitle("checker");
          this.setDefaultCloseOperation(EXIT_ON_CLOSE);
          panel = new JPanel();
          texts = new JPanel();
          buttons = new JPanel();
          bigt = new JPanel();
          word1 = new JTextField(10);
          word2 = new JTextField(10);
          word3 = new JTextField(10);
          word4 = new JTextField(10);
          word5 = new JTextField(10);
          word6 = new JTextField(10);
          word7 = new JTextField(10);
          word8 = new JTextField(10);
          word9 = new JTextField(10);
          word10 = new JTextField(10);
          gofor = new JButton("BONANZA!");
          rego = new JButton("Restart");
          Stuff = new JTextArea(40, 40);
          Quit = new JButton("Exit");
          Stuff.setLineWrap(true);
          Stuff.setWrapStyleWord(true);
          Stuff.setText("welcome to the google search bonanza! first user write 10 random words and press BONANZA!");
          JScrollPane useless = new JScrollPane(Stuff, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
          panel.setLayout(new GridBagLayout());
          texts.setLayout(new GridBagLayout());
          buttons.setLayout(new GridBagLayout());
          bigt.setLayout(new GridBagLayout());
          c.fill = GridBagConstraints.CENTER;
          d.fill = GridBagConstraints.RELATIVE;
  
          d.gridx = 0;
          d.gridy = 0;
          texts.add(word1, d);
          d.gridx = 0;
          d.gridy = 1;
          texts.add(word2, d);
          d.gridx = 0;
          d.gridy = 2;
          texts.add(word3, d);
          d.gridx = 0;
          d.gridy = 3;
          texts.add(word4, d);
          d.gridx = 0;
          d.gridy = 4;
          texts.add(word5, d);
          d.gridx = 0;
          d.gridy = 5;
          texts.add(word6, d);
          d.gridx = 0;
          d.gridy = 6;
          texts.add(word7, d);
          d.gridx = 0;
          d.gridy = 7;
          texts.add(word8, d);
          d.gridx = 0;
          d.gridy = 8;
          texts.add(word9, d);
          d.gridx = 0;
          d.gridy = 9;
          texts.add(word10);
          c.gridx = 10;
          c.gridy = 0;
          buttons.add(gofor,c);
          c.gridx = 9;
          c.gridy = 0;
          buttons.add(Quit,c);
          c.gridx = 8;
          c.gridy = 0;
          buttons.add(rego ,c);
          Bonanza bonanzer = new Bonanza();
          Bonanzatwo bon2 = new Bonanzatwo();
          Reset Reseter = new Reset();
          Exit Exiter = new Exit();
          rego.addActionListener(Reseter);
          gofor.addActionListener(bonanzer);
          gofor.addActionListener(bon2);
          Quit.addActionListener(Exiter);
          bigt.add(Stuff);
          c.gridheight = 20;
          c.gridx = 0;
          c.gridy = 0;
          panel.add(texts, c);
  
          panel.add(buttons);
  
  
          panel.add(bigt);
          panel.add(useless);
          this.add(panel);
          this.setExtendedState(JFrame.MAXIMIZED_BOTH); 
          this.setUndecorated(true);
          this.setVisible(true);
          this.setTitle("The Google search bonanza");
      }
  </code></pre>
  
  <p>basically if it wasn't clear, im going for something like this:</p>
  
  <p><a href="https://i.stack.imgur.com/PrAf0.png" rel="nofollow"><img src="https://i.stack.imgur.com/PrAf0.png" alt="What I&#39;m going for"></a></p>