title: How can I implement a java GUI that has multiple rows of buttons spaced equally apart from one another
body: <p>I'm trying to get 4 buttons on my top row, 4 buttons on the bottom row, and I need a button below that one- it's a voting application with each of the buttons representing a candidate. initializeThings() is the only method called from the init method of this applet. The Person class is simply a container for 3 Strings representing the name, position the candidate's running for, and other information about them. My main problem is really just figuring out how to format it with the 4 buttons on the top row, 4 on the bottom, and the vote button below the bottom row.</p>
  
  <pre><code>public class MainElectionWindow extends JApplet implements ActionListener, MouseListener{
  private JPanel panel, topRow, bottomRow, voteBtnRow;
  private JButton person1But,person2But,person3But,person4But,person5But,person6But,person7But,person8But,castVote;
  private Person person1,person2,person3,person4,person5,person6,person7,person8;
  private ImageIcon pic1, pic2, pic3, pic4, pic5, pic6, pic7, pic8;
  
  private static final int HORIZONTAL_SPACING = 10;
  private static final int VERTICAL_SPACING = 20;
  
  
  private void initializeThings() {
  
  
  // Initialize variables
  topRow = new JPanel();
  topRow.setLayout(new BoxLayout(topRow,BoxLayout.X_AXIS));
  
  bottomRow = new JPanel();
  bottomRow.setLayout(new BoxLayout(bottomRow,BoxLayout.X_AXIS));
  
  voteBtnRow = new JPanel();
  
  
  //Create people with names, position they're running for, and other info
  person1 = new Person("Name 1", "Pos 1", "Other Info 1");
  person2 = new Person("Name 2", "Pos 2", "Other Info 2");
  person3 = new Person("Name 3", "Pos 3", "Other Info 3");
  person4 = new Person("Name 4", "Pos 4", "Other Info 4");
  person5 = new Person("Name 5", "Pos 5", "Other Info 5");
  person6 = new Person("Name 6", "Pos 6", "Other Info 6");
  person7 = new Person("Name 7", "Pos 7", "Other Info 7");
  person8 = new Person("Name 8", "Pos 8", "Other Info 8");
  
  pic1 = new ImageIcon("facebackground.png");
  pic2 = new ImageIcon("facebackground.png");
  pic3 = new ImageIcon("facebackground.png");
  pic4 = new ImageIcon("facebackground.png");
  pic5 = new ImageIcon("facebackground.png");
  pic6 = new ImageIcon("facebackground.png");
  pic7 = new ImageIcon("facebackground.png");
  pic8 = new ImageIcon("facebackground.png");
  
  
  // Get the content pane
  Container container = this.getContentPane();
  
  // Add panel to container
  container.add(topRow);
  container.add(bottomRow);
  container.add(voteBtnRow);
  
  person1But = new JButton(pic1);
  person2But = new JButton(pic2);
  person3But = new JButton(pic3);
  person4But = new JButton(pic4);
  person5But = new JButton(pic5);
  person6But = new JButton(pic6);
  person7But = new JButton(pic7);
  person8But = new JButton(pic8);
  castVote = new JButton("Vote");
  
  // Add action listeners
  person1But.addActionListener(this);
  person2But.addActionListener(this);
  person3But.addActionListener(this);
  person4But.addActionListener(this);
  person5But.addActionListener(this);
  person6But.addActionListener(this);
  person7But.addActionListener(this);
  person8But.addActionListener(this);
  castVote.addActionListener(this);
  
  //Add Mouse Listeners
  person1But.addMouseListener(this);
  person2But.addMouseListener(this);
  person3But.addMouseListener(this);
  person4But.addMouseListener(this);
  person5But.addMouseListener(this);
  person6But.addMouseListener(this);
  person7But.addMouseListener(this);
  person8But.addMouseListener(this);
  
  
  // Add components to the visual panel1
  topRow.add(person1But);
  topRow.add(person2But);
  topRow.add(person3But);
  topRow.add(person4But);
  bottomRow.add(person5But);
  bottomRow.add(person6But);
  bottomRow.add(person7But);
  bottomRow.add(person8But);
  voteBtnRow.add(castVote);
  
  
  // Make it visible
  //person1But.requestFocusInWindow();
  
  add(container);
  
  setVisible(true);
  }
  </code></pre>
  
  <p>Thanks for taking the time to read this/help</p>