public void actionPerformed(ActionEvent ae)
    {
      if(ae.getSource() == jRecoverPanel.getCancelButton())
      {
        setVisible(false);
        jLoginFrame.setVisible(true);
        dispose();
      }
      else if (ae.getSource() == jRecoverPanel.getRecoveryButton())
      {
        String szEmail = jRecoverPanel.getEmailField();
        String szUsername = jRecoverPanel.getUsernameField();
        String szAnswer = jRecoverPanel.getSecurityAnswerField();
        String szQuestion = jRecoverPanel.getSecurityQuestionField();
        if(! (szEmail.isEmpty() || szUsername.isEmpty() ||
              szAnswer.isEmpty() || szQuestion.isEmpty()) )
        {
          try
          {
            String rec = ub.recover(szUsername,szEmail,szQuestion,szAnswer);
            if(rec!=null)
            {
              JOptionPane.showMessageDialog(null,"Your passcode is\r\n"+
                                            rec);
              setVisible(false);
              jLoginFrame.setVisible(true);
              dispose();
            }
            else
              JOptionPane.showMessageDialog(null,"Your passcode could not be recovered.\r\nVerify you've entered the fields correctly");
          }
          catch(IOException e)
          {
            JOptionPane.showMessageDialog(null,e.getMessage());
          }
        }
        else
          JOptionPane.showMessageDialog(null,"Recovery fields can not be empty");
      }
    }