NullPointerException problem
hello.
i am trying to log on to the video library system that i just developed. when i type "Administrator" in the username text field and 0 in the password field and press OK i get a large NullPointerException problem (both the error + appropriate pieces of code are shown below). i had to press End on the jGRASP console in order to end the program. i don't know what to do. how can i fix these errors?
-jGRASP exec: java HomeEntertainment
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at User.doLogOn(LogOn.java:71)
at LogOn$1.actionPerformed(LogOn.java:42)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
-jGRASP: process aborted by user.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
publicclass HomeEntertainmentextends JPanelimplements ActionListener{
private JTabbedPane jtp =new JTabbedPane();
private JPanel cP1 =new JPanel();
private JPanel cP2 =new JPanel();
private JPanel cP3 =new JPanel();
private JPanel cP4 =new JPanel();
private JPanel bP1 =new JPanel();
private JPanel bP2 =new JPanel();
private JPanel bP3 =new JPanel();
private JPanel bP4 =new JPanel();
private JButton jbAdministratorLogOn =new JButton("Log On");
private JButton jbNewUserRegister =new JButton("Register");
private JButton jbExistingUserLogOn =new JButton("Log On");
private JButton jbExitTheSystem =new JButton("Exit the system");
public HomeEntertainment(){
cP1.setLayout(new BorderLayout());
cP2.setLayout(new BorderLayout());
cP3.setLayout(new BorderLayout());
cP4.setLayout(new BorderLayout());
bP1.setBorder(new TitledBorder("Make a choice"));
bP2.setBorder(new TitledBorder("Make a choice"));
bP3.setBorder(new TitledBorder("Make a choice"));
bP4.setBorder(new TitledBorder("Make a choice"));
bP1.add(jbAdministratorLogOn);
bP2.add(jbNewUserRegister);
bP3.add(jbExistingUserLogOn);
bP4.add(jbExitTheSystem);
cP1.add(bP1, BorderLayout.SOUTH);
cP2.add(bP2, BorderLayout.SOUTH);
cP3.add(bP3, BorderLayout.SOUTH);
cP4.add(bP4, BorderLayout.SOUTH);
jtp.addTab("Administrator", cP1);
jtp.addTab("New User", cP2);
jtp.addTab("Existing User", cP3);
jtp.addTab("Exit the system", cP4);
JFrame jf =new JFrame("Home Entertainment");
jf.getContentPane().add(jtp, BorderLayout.CENTER);
jf.setSize(500, 500);
jf.setVisible(true);
jbAdministratorLogOn.addActionListener(this);
jbNewUserRegister.addActionListener(this);
jbExistingUserLogOn.addActionListener(this);
jbExitTheSystem.addActionListener(this);
}
publicvoid actionPerformed(ActionEvent e){
if(e.getSource() == jbAdministratorLogOn){
LogOn logOn =new LogOn();
logOn.setVisible(true);
}
if(e.getSource() == jbNewUserRegister){
RegistrationForm r =new RegistrationForm();
r.setVisible(true);
}
if(e.getSource() == jbExistingUserLogOn){
LogOn logOn =new LogOn();
logOn.setVisible(true);
}
if(e.getSource() == jbExitTheSystem){
System.exit(0);
}
}
publicstaticvoid main(String[] args){
new HomeEntertainment();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
publicclass LogOnextends JFrame{
JPanel pnlBody, pnlFooter;
JLabel unLabel =new JLabel("Username: ");
JLabel pwLabel =new JLabel("Password: ");
JTextField jtfUN =new JTextField(20);
JPasswordField jtfPW =new JPasswordField(20);
JButton jbOK =new JButton("OK");
JButton jbCancel =new JButton("Cancel");
Container contentpane;
public LogOn(){
super("Welcome to Home Entertainment");
contentpane = getContentPane();
contentpane.setLayout(new BorderLayout());
pnlBody =new JPanel();
pnlFooter =new JPanel();
pnlBody.add(unLabel);
pnlBody.add(jtfUN);
pnlBody.add(pwLabel);
pnlBody.add(jtfPW);
pnlFooter.add(jbOK);
pnlFooter.add(jbCancel);
contentpane.add(pnlBody,BorderLayout.NORTH);
contentpane.add(pnlFooter,BorderLayout.CENTER);
pack();
setVisible(true);
jbOK.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e){
User u =new User();
u.doLogOn();
u.username = jtfUN.getText().trim();
u.password =new String(jtfPW.getPassword());
Administrator a =new Administrator();
a.doLogOn();
a.username = jtfUN.getText().trim();
a.password =new String(jtfPW.getPassword());
setVisible(false);
}
});
jbCancel.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e){
setVisible(false);
}
});
}
}
class User{
String username;
String password;
String[] userUsernameArray ={"Ann Smyth","John Murphy"};
String[] userPasswordArray ={"1","2"};
publicvoid doLogOn(){
int i, j;
for(i = 0; i < userUsernameArray.length; i++){
if(username.equals(userUsernameArray[i])){
UserMainMenu umm =new UserMainMenu();
umm.setVisible(true);
}
else{
JOptionPane.showMessageDialog(null,"Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);
}
}
for(j = 0; j < userPasswordArray.length; j++){
if(password.equals(userPasswordArray[j])){
UserMainMenu umm =new UserMainMenu();
umm.setVisible(true);
}
else{
JOptionPane.showMessageDialog(null,"Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);
}
}
}
}
class Administrator{
String username;
String password;
String[] adminUsernameArray ={"Administrator"};
String[] adminPasswordArray ={"0"};
publicvoid doLogOn(){
int k, l;
for(k = 0; k < adminUsernameArray.length; k++){
if(username.equals(adminUsernameArray[k])){
AdminMainMenu amm =new AdminMainMenu();
amm.setVisible(true);
}
else{
JOptionPane.showMessageDialog(null,"Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);
}
}
for(l = 0; l < adminPasswordArray.length; l++){
if(password.equals(adminPasswordArray[l])){
AdminMainMenu amm =new AdminMainMenu();
amm.setVisible(true);
}
else{
JOptionPane.showMessageDialog(null,"Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);
}
}
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
publicclass AdminMainMenuextends JFrame{
JPanel pnlBody;
JButton btnOrderSystem =new JButton("Order System");
JButton btnMaintenance =new JButton("Maintenance");
JButton btnAdminLogOff =new JButton("Log Off");
Container contentpane;
public AdminMainMenu(){
super("Main Menu");
contentpane = getContentPane();
contentpane.setLayout(new BorderLayout());
pnlBody =new JPanel();
pnlBody.add(btnOrderSystem);
pnlBody.add(btnMaintenance);
pnlBody.add(btnAdminLogOff);
contentpane.add(pnlBody,BorderLayout.CENTER);
pack();
setVisible(true);
btnOrderSystem.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e){
setVisible(false);
//OrderSystem os = new OrderSystem();
//os.setVisible(true);
}
});
btnMaintenance.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e){
setVisible(false);
//Maintenance m = new Maintenance();
//m.setVisible(true);
}
});
btnAdminLogOff.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e){
int result;
result = JOptionPane.showConfirmDialog(null,"Are you sure you want to log off?", null, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if(result == JOptionPane.YES_OPTION){
setVisible(false);
}
}
});
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
publicclass UserMainMenuextends JFrame{
JPanel pnlBody;
JButton btnUserProductMenu =new JButton("Product Menu");
JButton btnUserMemberMenu =new JButton("Member Menu");
JButton btnUserRentalMenu =new JButton("Rental Menu");
JButton btnUserLogOff =new JButton("Log Off");
Container contentpane;
public UserMainMenu(){
super("Main Menu");
contentpane = getContentPane();
contentpane.setLayout(new BorderLayout());
pnlBody =new JPanel();
pnlBody.add(btnUserProductMenu);
pnlBody.add(btnUserMemberMenu);
pnlBody.add(btnUserRentalMenu);
pnlBody.add(btnUserLogOff);
contentpane.add(pnlBody,BorderLayout.CENTER);
pack();
setVisible(true);
btnUserProductMenu.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e){
setVisible(false);
//UserProductMenu upm = new UserProductMenu();
//upm.setVisible(true);
}
});
btnUserMemberMenu.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e){
setVisible(false);
//UserMemberMenu umm = new UserMemberMenu();
//umm.setVisible(true);
}
});
btnUserRentalMenu.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e){
setVisible(false);
//UserRentalMenu urm = new UserRentalMenu();
//urm.setVisible(true);
}
});
btnUserLogOff.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e){
int result;
result = JOptionPane.showConfirmDialog(null,"Are you sure you want to log off?", null, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if(result == JOptionPane.YES_OPTION){
setVisible(false);
}
}
});
}
}

