title: Add multiple JTextField items to an ArrayList
body: <p>I have a new question that I would love some guidance on.</p>
  
  <p>I am creating a GUI program that takes in Contact info from the user and every time the addButton is clicked a Contact object is created and added to an array list, then when the viewButton is clicked that info is all displayed.  </p>
  
  <p>I finally got the JTextField info into an ArrayList but, <strong>I'm not sure how to add multiple contact info.  I added firstNameInput.setText(""); after the first contact info is entered to clear the screen but that also clears the ArrayList.  I'm thinking I need some sort of loop but the one I created ended up creating a endless loop. This is all in the ActionPerformed method...</strong>  I understand why its an endless loop but this is the first time I've used an ArrayList so I'm getting confused.</p>
  
  <p>Pointers in the right direction is greatly appreciated.  </p>
  
  <pre><code>public class InputForm extends JFrame {
      private JPanel panel;
      private JLabel firstNameLabel;
      private JLabel lastNameLabel;
      private JLabel phoneNumLabel;
      private JLabel emailLabel;
      private JTextField  firstNameInput;
      private JTextField  lastNameInput;
      private JTextField  phoneInput;
      private JTextField  emailInput;
      private JButton addButton;
      private JButton viewButton;
      private String fn;
      private String ln;
      private String ph;
      private String em;
      private List&lt;Contact&gt; list = new ArrayList&lt;Contact&gt;();
  
  public InputForm() {
      int windowWidth = 650;
      int windowHeight = 550;
  
      //Window title
      setTitle("CONTACT FORM");
      //Set window size.
      setSize(windowWidth, windowHeight);
      //Exit on close 
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      //Buld the panel and add it the the JFrame.
      buildPanel();
      //Add the panel to the frames content pane
      add(panel);
      //Display the window.
      setVisible(true);   
  }
  
  private void buildPanel() {
  
      panel = new JPanel();
      addButton = new JButton("Add Contact");
      viewButton = new JButton("View Contacts");
  
      firstNameLabel = new JLabel("First Name");
      firstNameInput = new JTextField(10);
      lastNameLabel = new JLabel("Last Name: ");
      lastNameInput = new JTextField(10);
      phoneNumLabel = new JLabel("Phone Number: ");
      phoneInput = new JTextField(10);
      emailLabel = new JLabel("Email: ");
      emailInput = new JTextField(10);
  
      /*Add labels, text fields and buttons to the panel*/
      panel.add(firstNameLabel);
      panel.add(firstNameInput);
      panel.add(lastNameLabel);
      panel.add(lastNameInput);
      panel.add(phoneNumLabel);
      panel.add(phoneInput);
      panel.add(emailLabel);
      panel.add(emailInput);
      panel.add(addButton);
      panel.add(viewButton);
  
      theHandler handler = new theHandler();
      addButton.addActionListener(handler);
      viewButton.addActionListener(handler);
  }
  
  
  private class theHandler implements ActionListener {
  
     public void actionPerformed(ActionEvent event) {
          fn = firstNameInput.getText();
          ln = lastNameInput.getText();
          ph = phoneInput.getText();
          em = emailInput.getText();
          Contact con = new Contact(fn, ln, ph, em);
  
      while(event.getSource() == addButton) {
          list.add(con);
          fn = firstNameInput.getText();
          ln = lastNameInput.getText();
          ph = phoneInput.getText();
          em = emailInput.getText();
          list.add(con);  
          firstNameInput.setText("");
          lastNameInput.setText("");
          phoneInput.setText("");
          emailInput.setText("");
      }           
      if(event.getSource() == viewButton) {
          JOptionPane.showMessageDialog(null,"Contact Info:\n" + con);        
      }
  }   
  }
  }
  </code></pre>
  
  <p>CONTACT CLASS</p>
  
  <pre><code>public class Contact {
      private String fn;
      private String ln;
      private String ph;
      private String em;
  
  public Contact(String fn, String ln, String ph, String em) { 
      this.fn = fn;
      this.ln = ln;
      this.ph = ph;
      this.em = em;
  }
      public String getFirstName() {
          return fn;
      }
      public void setFirstName(String fn) {
          this.fn = fn;
      }   
      public String getLastName() {
          return ln;
      }
      public void setLastName(String ln) {
          this.ln = ln;
      }
      public String getPhone() {
          return ph;
      }
      public void setPhone(String ph) {
          this.ph = ph;
      }
      public String getEmail() {
          return em;
      }   
      public void setEmail(String em) {
          this.em = em;
      }
  
      public String toString() {
          return "First Name: " + getFirstName() + "\n" +
                  "Last Name: " + getLastName() + "\n" +
                  "Phone Number: " + getPhone() + "\n" +
                  "Email: " + getEmail() + "\n";
      }
  
  public static void main(String[] args) {
      new InputForm();
  }
  }
  </code></pre>