How can I prevent my ArrayList from resetting in a Java GUI?

JesseB

New Member
I have a program that has a user login function which prompts the creation of a username and password that is later stored into two different ArrayLists. I added a button that goes straight to the login after the account is created, and the login works fine. However, if I close the GUI and try to directly login with the previous login information, the username/password isn't recognized. Are my ArrayLists resetting, or is there an error in my code? Here is the shortened version of my login class: \[code\]public class OptionGUI extends JPanel implements ActionListener{ ArrayList<String>passworddatabase= new ArrayList(); ArrayList<String> usernamedatabase= new ArrayList(); JButton newaccount = new JButton("Create a new account"); JButton login= new JButton("Login"); public int response; public OptionGUI() { newaccount.setVerticalTextPosition (AbstractButton.CENTER); newaccount.setHorizontalTextPosition(AbstractButton.LEADING); newaccount.setActionCommand("create"); login.setVerticalTextPosition(AbstractButton.CENTER); login.setHorizontalTextPosition(AbstractButton.TRAILING); login.setActionCommand("login"); login.setEnabled(true); newaccount.addActionListener(this); login.addActionListener(this); add(newaccount); add(login); } public void actionPerformed(ActionEvent e) { { if ("create".equals(e.getActionCommand())) { newaccount.setEnabled(true); login.setEnabled(false); JPanel logininfo= new JPanel(); JLabel usernameLbl= new JLabel("Choose a username:"); JLabel passwordLbl= new JLabel("Choose a password:"); JTextField username= new JTextField(); JPasswordField password= new JPasswordField(); logininfo.add(usernameLbl); logininfo.add(username); logininfo.add(passwordLbl); logininfo.add(password); logininfo.setVisible(true); int input2 = JOptionPane.showConfirmDialog(frame,logininfo, "Create your account:" ,JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); char[] enteredPassword= password.getPassword(); char[] enteredPassword2= passwordconfirm.getPassword(); String newusername= username.getText(); String newpassword= String.valueOf(enteredPassword); String newpassword2= String.valueOf(enteredPassword2); String[] options = { "Login", "Cancel" }; response = JOptionPane.showOptionDialog(null, "Your account has been successfully created! Please login to continue.", "Confirmation",JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, options,options[0]); } passworddatabase.add(newpassword); usernamedatabase.add(newusername); } if ("loginbutton".equals(e.getActionCommand())|| response==0) { login.setEnabled(true); newaccount.setEnabled(false); JPanel panel= new JPanel(); panel.setLayout(new GridLayout(2,2)); JLabel usernameLbl = new JLabel("Username:"); JLabel passwordLbl = new JLabel("Password:"); JTextField username = new JTextField(); JPasswordField passwordFld = new JPasswordField(); panel.add(usernameLbl); panel.add(username); panel.add(passwordLbl); panel.add(passwordFld); panel.setVisible(true); int input = JOptionPane.showConfirmDialog(frame, panel, "Enter your password:" ,JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); String inputPassword= String.valueOf(passwordFld); String inputUsername= username.getText(); for(int i=0; i < passworddatabase.size(); i++) { if (passworddatabase.get(i).contains(inputPassword)) { JOptionPane.showMessageDialog(null, "Welcome to AIR Ticket Reservation!"); } else { JOptionPane.showMessageDialog(null, "The username or password you entered does not exist.", "Error", JOptionPane.ERROR_MESSAGE); } } } }} }\[/code\]Here is my driver: \[code\]import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.JTextArea;import javax.swing.JPasswordField;import javax.swing.JPanel;import javax.swing.JLabel;import javax.swing.JButton;import javax.swing.JDialog;import java.awt.GridLayout;import java.util.Arrays;import java.awt.EventQueue;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.AbstractButton;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;public class Driver { public static void main(String[] args) { JFrame option= new JFrame ("Ticket Reservation"); option.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); option.setSize(500,300); option.setLocationRelativeTo(null); OptionGUI newContentPane= new OptionGUI(); option.setContentPane(newContentPane); option.setVisible(true); } }\[/code\]Thanks!
 
Back
Top