title: java: validating that all text fields in GUI are completed
body: <p>I am trying to create a GUI that allows someone to set up an account. I would like to validate that all the text fields are complete when the create account button is pressed. What is the best way to do this? I am attaching my code but my validation that the text fields are complete is not working.</p>
  
  <p>see code below:</p>
  
  <pre><code>public class GUIaccounts extends JFrame{
  
  private JLabel name;
  private JLabel initDeposit;
  private JLabel chooseAccount;
  private JLabel empty;
  private JTextField nameTextField;
  private JTextField initDepositTextField;
  private JPanel dataPanel;
  private JPanel accountTypePanel;
  private JRadioButton savingsAccount;
  private JRadioButton premiereChecking;
  private ButtonGroup radioButtonGroup;
  private JButton createAccountButton;
  private JPanel createAccountPanel;
  private Bank myBank;
  
  
  
  public GUIaccounts(){
      setTitle("Create an Account");
      setSize(1000,1000);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      buildPanels();
      setVisible(true);
      pack();
      setLocationRelativeTo(null);
       myBank=new Bank();
  
  }
  
  private void buildPanels(){
      //create the panels
      dataPanel= new JPanel();
      dataPanel.setLayout(new GridLayout(2,2));
      accountTypePanel=new JPanel();
      accountTypePanel.setLayout(new GridLayout(3,1));
      createAccountPanel=new JPanel();
      createAccountPanel.setLayout(new FlowLayout());
      //create labels
      name=new JLabel("Enter Name:");
      Border border = LineBorder.createBlackLineBorder();
      name.setBorder(border);
      initDeposit=new JLabel("Enter Initial Deposit:");
      initDeposit.setBorder(border);
      chooseAccount=new JLabel("Choose Account:");
      empty=new JLabel(" ");
      //create text fields
      nameTextField=new JTextField();
      initDepositTextField=new JTextField();
      //create buttons
      savingsAccount = new JRadioButton("Savings Account");
      premiereChecking =new JRadioButton ("Premiere Checking Account");
      createAccountButton=new JButton("Create Account");
      //add labels and field to the panel
      dataPanel.add(name);
      dataPanel.add(nameTextField);
      dataPanel.add(initDeposit);
      dataPanel.add(initDepositTextField);
      //add button to the panel
      accountTypePanel.add(chooseAccount);
      accountTypePanel.add(empty);
      accountTypePanel.add(savingsAccount);
      accountTypePanel.add(premiereChecking);
      createAccountPanel.add(createAccountButton);
  
      //add actionListeners to the buttons
      savingsAccount.addActionListener(new RadioButtonListener());
      premiereChecking.addActionListener(new RadioButtonListener());
      createAccountButton.addActionListener(new createAccountListener());
      //add focus to the text field
      nameTextField.addFocusListener(new nameFieldListener());
      initDepositTextField.addFocusListener(new initDepositFieldListener());
      //add panels to the contentPane
      add(dataPanel, BorderLayout.NORTH);
      add(accountTypePanel, BorderLayout.CENTER);
      add(createAccountPanel, BorderLayout.SOUTH);
      //group radio buttons
      radioButtonGroup= new ButtonGroup();
      radioButtonGroup.add(savingsAccount);
      radioButtonGroup.add(premiereChecking);
  }
      private class createAccountListener implements ActionListener{
          public void actionPerformed(ActionEvent e){
              String name=null;
              Double amount=null;
              if (savingsAccount.isSelected()){
                  name=nameTextField.getText();
                  amount=Double.valueOf(initDepositTextField.getText());
                  if(name!=null &amp;&amp; amount !=null){
                  try{
  
                      SavingsAccount account=new SavingsAccount(name,AccountIDs.getNextID(), amount);
                      myBank.addAccount(account);
                      JOptionPane.showMessageDialog(null,"Account setup was successful" + myBank.toString());
                  }
  
  
  
                  catch(Exception e1){
                      JOptionPane.showMessageDialog(null,"Unable to set up account. " +e1.getMessage());
                  }
              }
                  else{
                      JOptionPane.showMessageDialog(null, "All fields must be completed in order to set up account");
                  }
              }
  
              else if(premiereChecking.isSelected()){
                  name=nameTextField.getText();
                  amount=Double.valueOf(initDepositTextField.getText());
                  if(name!=null &amp;&amp; amount!=null){
                  try{
                      PremiereCheckingAccount account=new PremiereCheckingAccount(name, AccountIDs.getNextID(),amount);
                      myBank.addAccount(account);
                      JOptionPane.showMessageDialog(null,"Account setup was successful" +myBank.toString());
                  }
                  catch(Exception e1){
                      JOptionPane.showMessageDialog(null,"Unable to set up account. " + e1.getMessage());
                  }
                  }
                  else{
                      JOptionPane.showMessageDialog(null, "All fields must be completed in order to set up account");
                  }
  
              }
              else{
                  JOptionPane.showMessageDialog(null,"Please select the type of account you want to create.");
              }
          }
      }
      private class RadioButtonListener implements ActionListener{
          public void actionPerformed(ActionEvent e){
  
  
          }
      }
  
      private class nameFieldListener implements FocusListener{
          public void focusGained(FocusEvent e){
  
              nameTextField.selectAll();//highlight contents
          }
  
          public void focusLost(FocusEvent e){
      }
  
  
  
  }
      private class initDepositFieldListener implements FocusListener{
          public void focusGained(FocusEvent e){
              initDepositTextField.selectAll();
          }
  
          public void focusLost(FocusEvent e) {
  
  
          }
      }
  
  
  
      public static void main(String[]args){
      GUIaccounts myAccount=new GUIaccounts();
      }   
  </code></pre>
  
  <p>}</p>