I am trying to run a project in Student information system. I have actually converted the database from ms access (accdb) to mysql and connected with my java application in wampserver. I have two users role i.e. admin and student. But strangely after connecting netbeans to the wampserver, I can only login through the student user details but not with the admin details. When trying to log in with admin details it throws invalid username or password exception. The main class login code is as given bellow:
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Login extends JFrame implements ActionListener {
Container c = getContentPane();
private JButton btnLogin, btnCancel;
private JLabel lblUName, lblPasswd;
private JTextField txtUName;
private JPasswordField txtPasswd;
public Login() {
super("Login ...");
this.setSize(350, 200);
this.setLayout(null);
this.setResizable(false);
this.setLocation((Settings.getScreenSize().width / 2) - 175, (Settings.getScreenSize().height / 2) - 150);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
lblUName = new JLabel("Username");
lblPasswd = new JLabel("Password");
txtUName = new JTextField();
txtPasswd = new JPasswordField();
btnLogin = new JButton("Login");
btnCancel = new JButton("Cancel");
lblUName.setBounds(50, 40, 140, 25);
txtUName.setBounds(150, 40, 130, 25);
lblPasswd.setBounds(50, 80, 140, 25);
txtPasswd.setBounds(150, 80, 130, 25);
btnLogin.setBounds(50, 120, 100, 25);
btnCancel.setBounds(180, 120, 100, 25);
btnLogin.addActionListener(this);
btnCancel.addActionListener(this);
this.add(lblUName);
this.add(lblPasswd);
this.add(txtUName);
this.add(txtPasswd);
this.add(btnLogin);
this.add(btnCancel);
}//constructor closed
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnLogin) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/anu?zeroDateTimeBehavior=convertToNull","root","root");
try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM UAD WHERE Username='" + txtUName.getText() +
"' and Password='" + txtPasswd.getText() + "'");
if (rs.next()) {
if (rs.getString(3).equals("Student")) {
userMDI frm = new userMDI();
frm.setVisible(true);
} else {
new frmAdminMDI().setVisible(true);
}
this.dispose();
}else{
JOptionPane.showMessageDialog(null,"Invalid username or password","Invalid",JOptionPane.ERROR_MESSAGE);
}
con.close();
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Invalid username or password", "Invalid", JOptionPane.ERROR_MESSAGE);
txtUName.setText("");
txtPasswd.setText("");
}//inner try catch closed
} catch (Exception x) {
JOptionPane.showMessageDialog(null, "Unable to connect to the database", "Connection error", JOptionPane.ERROR_MESSAGE);
}//outer try catch closed
}//if closed
if (e.getSource() == btnCancel) {
System.exit(0);
}//if closed
}//actionPerformed() closed
public static void main(String args[]) {
new Login().setVisible(true);
}
}//class closed
The user table is:
The exception thrown after using printStackTrace();
java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
at frmAdminMDI.<init>(frmAdminMDI.java:40)
at Login.actionPerformed(Login.java:67)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Here's the code for "frmAdminMDI.java":
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
public class frmAdminMDI extends JFrame implements ActionListener {
private JMenuBar menubar;
private JMenu mnuAccounts;
private JMenu mnuStdDetails;
private JMenu mnuView;
private JMenu mnuOptions;
private JMenu mnuTools;
private JMenuItem mnuNewUser;
private JMenuItem mnuEditUser;
private JMenuItem mnuDeleteUser;
private JMenuItem mnuNewReg;
private JMenuItem mnuEditReg;
private JMenuItem mnuDelDetails;
private JMenuItem mnuEditMark;
private JMenuItem mnuViewStdDetails;
private JMenuItem mnuMemList;
private JMenuItem mnuMarkList;
private JMenuItem mnuAddSubs,mnuEditSubs,mnuDelSubs;
private JMenuItem mnuSubAlloc;
private JMenuItem mnuCalc, mnuNotepad;
public static JDesktopPane desktop;
public frmAdminMDI() {
super("Student management System");
this.setSize(Settings.getScreenSize().width, Settings.getScreenSize().height - 30);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
setIconImage(new ImageIcon(ClassLoader.getSystemResource("images/appicon.png")).getImage());
setExtendedState(MAXIMIZED_BOTH);
desktop = new JDesktopPane();
menubar = new JMenuBar();
mnuAccounts = new JMenu("Accounts");
mnuStdDetails = new JMenu("Student details");
mnuView = new JMenu("View");
mnuOptions=new JMenu("Options");
mnuTools = new JMenu("Tools");
mnuNewUser = new JMenuItem("New User");
mnuEditUser = new JMenuItem("Edit User");
mnuDeleteUser = new JMenuItem("Delete User");
mnuNewReg = new JMenuItem("New Registration");
mnuEditReg = new JMenuItem("Edit Registration");
mnuDelDetails = new JMenuItem("Delete Details");
mnuEditMark = new JMenuItem("Edit Mark");
mnuViewStdDetails = new JMenuItem("Student Details");
mnuMemList = new JMenuItem("Member List");
mnuMarkList = new JMenuItem("Mark List");
mnuAddSubs=new JMenuItem("Add Subjects");
mnuEditSubs=new JMenuItem("Edit Subjects");
mnuDelSubs=new JMenuItem("Delete Subjects");
mnuSubAlloc=new JMenuItem("Subject Allocation");
mnuNotepad = new JMenuItem("Calculator");
mnuCalc = new JMenuItem("Calculator");
mnuAccounts.add(mnuNewUser);
mnuNewUser.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F2, KeyEvent.ALT_MASK));
mnuNewUser.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/user.png")));
mnuAccounts.add(mnuEditUser);
mnuEditUser.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3, KeyEvent.ALT_MASK));
mnuEditUser.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/editusr.png")));
mnuAccounts.addSeparator();
mnuAccounts.add(mnuDeleteUser);
mnuDeleteUser.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4, KeyEvent.ALT_MASK));
mnuDeleteUser.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/delusr.png")));
mnuStdDetails.add(mnuNewReg);
mnuNewReg.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK));
mnuNewReg.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/newreg.png")));
mnuStdDetails.add(mnuEditReg);
mnuEditReg.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, KeyEvent.CTRL_MASK));
mnuEditReg.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/editreg.png")));
mnuStdDetails.add(mnuDelDetails);
mnuDelDetails.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, KeyEvent.CTRL_MASK));
mnuDelDetails.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/delreg.png")));
mnuStdDetails.addSeparator();
mnuStdDetails.add(mnuEditMark);
mnuEditMark.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, KeyEvent.CTRL_MASK));
mnuEditMark.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/editmark.png")));
mnuView.add(mnuMarkList);
mnuMarkList.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, KeyEvent.CTRL_MASK));
mnuMarkList.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/marklist.png")));
mnuView.add(mnuMemList);
mnuMemList.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_MASK));
mnuMemList.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/memlist.png")));
mnuView.add(mnuViewStdDetails);
mnuViewStdDetails.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, KeyEvent.CTRL_MASK));
mnuViewStdDetails.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/stddet.png")));
mnuOptions.add(mnuAddSubs);
mnuOptions.add(mnuEditSubs);
mnuOptions.add(mnuDelSubs);
mnuOptions.addSeparator();
mnuOptions.add(mnuSubAlloc);
mnuTools.add(mnuCalc);
mnuCalc.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK));
mnuCalc.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/calc.png")));
mnuTools.add(mnuNotepad);
mnuNotepad.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, KeyEvent.CTRL_MASK));
mnuNotepad.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/notepad.png")));
menubar.add(mnuAccounts);
menubar.add(mnuStdDetails);
menubar.add(mnuView);
menubar.add(mnuOptions);
menubar.add(mnuTools);
mnuNewUser.addActionListener(this);
mnuEditUser.addActionListener(this);
mnuDeleteUser.addActionListener(this);
mnuNewReg.addActionListener(this);
mnuEditReg.addActionListener(this);
mnuDelDetails.addActionListener(this);
mnuEditMark.addActionListener(this);
mnuMarkList.addActionListener(this);
mnuMemList.addActionListener(this);
mnuViewStdDetails.addActionListener(this);
mnuAddSubs.addActionListener(this);
mnuEditSubs.addActionListener(this);
mnuDelSubs.addActionListener(this);
mnuSubAlloc.addActionListener(this);
mnuCalc.addActionListener(this);
mnuNotepad.addActionListener(this);
this.setJMenuBar(menubar);
this.add(desktop);
}//constructor closed
public void actionPerformed(ActionEvent e) {
try {
if (e.getSource() == mnuNewUser) {
NewUserReg frm = new NewUserReg();
desktop.add(frm);
frm.setVisible(true);
}
if (e.getSource() == mnuEditUser) {
Edituser frm = new Edituser();
desktop.add(frm);
frm.setVisible(true);
}
if (e.getSource() == mnuDeleteUser) {
Deleteuser frm = new Deleteuser();
desktop.add(frm);
frm.setVisible(true);
}
if (e.getSource() == mnuNewReg) {
NewStdReg frm = new NewStdReg();
desktop.add(frm);
frm.setVisible(true);
}
if (e.getSource() == mnuEditReg) {
EditStdReg frm = new EditStdReg();
desktop.add(frm);
frm.setVisible(true);
}
if (e.getSource() == mnuDelDetails) {
Deletedetails frm = new Deletedetails();
desktop.add(frm);
frm.setVisible(true);
}
if (e.getSource() == mnuMarkList) {
viewMark frm = new viewMark();
desktop.add(frm);
frm.setVisible(true);
}
if (e.getSource() == mnuEditMark) {
EditMark frm = new EditMark();
desktop.add(frm);
frm.setVisible(true);
}
if (e.getSource() == mnuCalc) {
Runtime.getRuntime().exec("calc.exe");
}
if (e.getSource() == mnuNotepad) {
Runtime.getRuntime().exec("notepad.exe");
}
if (e.getSource() == mnuMemList) {
MembersList frm = new MembersList();
desktop.add(frm);
frm.setVisible(true);
}
if (e.getSource() == mnuViewStdDetails) {
User frm = new User();
desktop.add(frm);
frm.setVisible(true);
}
if(e.getSource()==mnuAddSubs){
AddSubjects frm=new AddSubjects();
desktop.add(frm);
frm.setVisible(true);
}
if(e.getSource()==mnuEditSubs){
EditSubjects frm=new EditSubjects();
desktop.add(frm);
frm.setVisible(true);
}
if(e.getSource()==mnuDelSubs){
DelSubjects frm=new DelSubjects();
desktop.add(frm);
frm.setVisible(true);
}
if(e.getSource()==mnuSubAlloc){
SubjectAllocation frm=new SubjectAllocation();
desktop.add(frm);
frm.setVisible(true);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(new JFrame(), "Error, Cannot load window" + ex.toString(), "Error", JOptionPane.ERROR_MESSAGE);
}//try catch closed
}//actionPerformed() closed
} //class closed
