Click here to Skip to main content
15,896,912 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have a program in java to perform insert, update and delete in database . I am using MySQL database and have employee table. When I click on save button I get java.lang.NullPointerException on console. For login user "admin" as username and password. and also compile the program with "javac Employee.java" & run using this: "java MainEMS". below is the code:
------------------------------------------------------------------------
Java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;

class EMS extends JFrame
{
	
	EMS()
	{
		makeGUI();
	}
	
	private void makeGUI()
	{
		setDefaultCloseOperation(EMS.EXIT_ON_CLOSE);
		JTabbedPane jt=new JTabbedPane();
		jt.addTab("Personal Information",new Employee());
		jt.addTab("Salary Information",new Salary());
		add(jt);
		
	}
	
}

class Login  extends JFrame implements ActionListener
{
	JLabel lblUsername,lblPassword;
	JTextField txtUsername;
	JPasswordField txtPassword;
	JButton btnLogin,btnCancel;
	JPanel Login_Panel;

	Login()
	{
		setDefaultCloseOperation(Login.EXIT_ON_CLOSE);
		Login_Panel=new JPanel();
		GridBagLayout gbag=new GridBagLayout();
		GridBagConstraints gcon=new GridBagConstraints();
		setLayout(gbag);
		Login_Panel.setLayout(gbag);

		
		lblUsername=new JLabel("Username:");
		lblPassword=new JLabel("Password:");
		txtUsername=new JTextField(15);
		txtPassword=new JPasswordField(15);
		btnLogin=new JButton("Login");
		btnCancel=new JButton("Cancel");

		gcon.anchor=GridBagConstraints.FIRST_LINE_START;
		gcon.insets=new Insets(4,4,4,4);
		gcon.gridx=0;
		gbag.setConstraints(lblUsername,gcon);

		gcon.gridx=GridBagConstraints.RELATIVE;
		gbag.setConstraints(txtUsername,gcon);

		gcon.gridx=0;
		gbag.setConstraints(lblPassword,gcon);

		gcon.gridx=GridBagConstraints.RELATIVE;
		gcon.gridy=1;	
		gbag.setConstraints(txtPassword,gcon);
		
		//gcon.weight=0.1;
		//gcon.weight=0.1;

		gcon.gridx=1;
		gcon.gridy=2;
		gbag.setConstraints(Login_Panel,gcon);

		gcon.gridx=1;
		gcon.gridy=2;
		gbag.setConstraints(btnLogin,gcon);
		
		gcon.gridx=GridBagConstraints.RELATIVE;
		gbag.setConstraints(btnCancel,gcon);

		
		
		add(lblUsername);
		add(txtUsername);
		add(lblPassword);
		add(txtPassword);
		add(Login_Panel);
		Login_Panel.add(btnLogin);
		Login_Panel.add(btnCancel);
		
		btnLogin.addActionListener(this);
		btnCancel.addActionListener(this);

	}
	public void actionPerformed(ActionEvent ae)
	{
		String user=txtUsername.getText();
		String pass=txtPassword.getText();

		if(ae.getActionCommand().equals("Login"))
		{
			
			if(user.equals(pass))
			{
				EMS e=new EMS();
				e.setTitle("Employee Management System");
				e.setSize(1000,1000);
				e.setVisible(true);
			}
		}
	}
}

class Employee extends JPanel implements ActionListener, ItemListener
{
	JLabel lblempno,lblname,lblgender,lbladdress,lblcontact,lblemail,lblexp,lbldesig,lbldob,lbldoj,lblqua,lbldept;
	JButton btnsave,btnupdate,btndelete,btnexit;
	JTextField txtempno,txtname,txtcontact,txtemail,txtexp,txtdesig,txtqua,txtdept;
	JTextArea txtaddress;
	JRadioButton rbmale,rbfemale;
	
	static final String DB_URL="jdbc:mysql://localhost:3306/test";
	static final String USER="root";
	static final String PASS="root";
	Connection conn=null;
	Statement stmt=null;
	String sql=null;
	String gen="";
	public Employee()
	{
		setLayout(null);
		prepareGUI();
		
		lblempno.setBounds(30,100,300,30);
		lblname.setBounds(30,150,300,30);
		lbladdress.setBounds(30,200,300,30);
		lblgender.setBounds(30,250,300,30);
		lblcontact.setBounds(30,300,300,30);
		lblemail.setBounds(30,350,300,30);
		lblexp.setBounds(30,400,300,30);
		lbldesig.setBounds(30,450,300,30);
		lblqua.setBounds(30,500,300,30);
		lbldept.setBounds(30,550,300,30);
	
		txtempno.setBounds(200,100,100,30);
		txtname.setBounds(200,150,400,30);
		txtaddress.setBounds(200,200,400,40);
		
		rbmale.setBounds(200,250,100,30);
		rbfemale.setBounds(300,250,100,30);
		
		txtcontact.setBounds(200,300,400,30);
		txtemail.setBounds(200,350,400,30);
		txtexp.setBounds(200,400,400,30);
		txtdept.setBounds(200,450,400,30);
		txtqua.setBounds(200,500,400,30);
		txtdesig.setBounds(200,550,400,30);
		
		btnsave.setBounds(200,600,80,30);
		btnupdate.setBounds(300,600,80,30);
		btndelete.setBounds(400,600,80,30);
		btnexit.setBounds(500,600,80,30);
		
		add(lblempno);
		add(txtempno);
		add(lblname);
		add(txtname);
		add(lbladdress);
		add(txtaddress);
		add(lblgender);
		add(rbmale);
		add(rbfemale);
		add(lblcontact);
		add(txtcontact);
		add(lblemail);
		add(txtemail);
		add(lblqua);
		add(txtqua);
		add(lbldesig);
		add(txtdesig);
		add(lblexp);
		add(txtexp);
		add(lbldept);
		add(txtdept);
		
		
		add(btnsave);
		add(btnupdate);
		add(btndelete);
		add(btnexit);
		
		btnsave.addActionListener(this);
		btnupdate.addActionListener(this);
		btndelete.addActionListener(this);
		btnexit.addActionListener(this);
		try
		{
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("Connection to database");
			conn=DriverManager.getConnection(DB_URL,USER,PASS);
			System.out.println(conn);
			}
		catch(SQLException e)
		{
			System.out.println("SQL Error...!");
		}
		catch(Exception ex){}
	
	
	}
	private void prepareGUI()
	{
		lblempno=new JLabel("EMP.NO:");
		lblname=new JLabel("Employee Name:");
		lblgender=new JLabel("Gender:");
		lbladdress=new JLabel("Address:");
		lblcontact=new JLabel("Contact:");
		lblemail=new JLabel("Email ID:");
		lblexp=new JLabel("Experience:");
		lbldesig=new JLabel("Designation:");
		lbldob=new JLabel("Date Of Birth:");
		lbldoj=new JLabel("Date Of Joining:");
		lblqua=new JLabel("Qualification:");
		lbldept=new JLabel("Department:");
		
		btnsave=new JButton("Save");
		btnupdate=new JButton("Update");
		btndelete=new JButton("Delete");
		btnexit=new JButton("Exit");
		
		txtempno=new JTextField();
		txtname=new JTextField();
		txtcontact=new JTextField();
		txtemail=new JTextField();
		txtexp=new JTextField();
		txtdesig=new JTextField();
		txtqua=new JTextField();
		txtdept=new JTextField();
		txtaddress=new JTextArea();
		
		rbmale=new JRadioButton("Male");
		rbfemale=new JRadioButton("Female");
		
	}
	public void itemStateChanged(ItemEvent ie)
	{
		if(rbmale.isSelected())
		{
			gen="Male";
		}
		if(rbfemale.isSelected())
		{
			gen="Female";
		}
	}
	public void actionPerformed(ActionEvent ae)
	{
		
		if(ae.getActionCommand().equals("Save"))
		{
			try
			{
			
			stmt=conn.createStatement();
			sql="insert into employee values('"+txtempno.getText()+"','"+txtname.getText()+"','"+txtaddress.getText()+"','"+gen+"','"+txtcontact.getText()+"','"+txtemail.getText()+"','"+txtqua.getText()+"','"+txtdesig.getText()+"','"+txtdept.getText()+"','"+txtexp.getText()+"')";
			System.out.println(sql);
			stmt.executeUpdate(sql);
			stmt.close();
			conn.close();
			}
			catch(Exception e)
			{
				System.out.println("error:"+e);
			}
			
		}
		
		if(ae.getActionCommand().equals("Exit"))
		{
			System.exit(0);
		}
		if(ae.getActionCommand().equals("Delete"))
		{
			int id=Integer.valueOf(txtempno.getText());
			try
			{
				stmt=conn.createStatement();
				sql="delete from Employee where empno='"+id+"'";
				stmt.executeUpdate(sql);
				stmt.close();
				conn.close();
			}
			catch(Exception ex)
			{
				System.out.println(ex);	
			}
		}
	}
	
}

class Salary extends JPanel implements ActionListener
{
	JLabel lblempno,lblname,lblbsalary,lblhra,lblda,lblpf,lblallow;
	JButton btnsave,btnupdate,btndelete,btnexit;
	JTextField txtempno,txtname,txtbsalary,txthra,txtda,txtpf,txtallow;
	
	
	public Salary()
	{
		
		
		setLayout(null);
		prepareGUI();
		
		lblempno.setBounds(30,100,300,30);
		lblname.setBounds(30,150,300,30);
		lblbsalary.setBounds(30,200,300,30);
		lblhra.setBounds(30,250,300,30);
		lblda.setBounds(30,300,300,30);
		lblpf.setBounds(30,350,300,30);
		lblallow.setBounds(30,400,300,30);
	
		txtempno.setBounds(200,100,100,30);
		txtname.setBounds(200,150,400,30);
		txtbsalary.setBounds(200,200,400,30);
		txthra.setBounds(200,250,400,30);
		txtda.setBounds(200,300,400,30);
		txtpf.setBounds(200,350,400,30);
		txtallow.setBounds(200,400,400,30);
		
		btnsave.setBounds(200,600,80,30);
		btnupdate.setBounds(300,600,80,30);
		btndelete.setBounds(400,600,80,30);
		btnexit.setBounds(500,600,80,30);
		
		add(lblempno);
		add(txtempno);
		add(lblname);
		add(txtname);
		add(lblbsalary);
		add(txtbsalary);
		add(lblhra);
		add(txthra);
		add(lblda);
		add(txtda);
		add(lblpf);
		add(txtpf);
		add(lblallow);
		add(txtallow);
		
		
		add(btnsave);
		add(btnupdate);
		add(btndelete);
		add(btnexit);

		
	}
	private void prepareGUI()
	{
		lblempno=new JLabel("EMP.NO:");
		lblname=new JLabel("Employee Name:");
		lblbsalary=new JLabel("Basic Salary:");
		lblhra=new JLabel("HRA:");
		lblda=new JLabel("DA:");
		lblpf=new JLabel("PF:");
		lblallow=new JLabel("Allowance:");
		
		
		btnsave=new JButton("Save");
		btnupdate=new JButton("Update");
		btndelete=new JButton("Delete");
		btnexit=new JButton("Exit");
		
		txtempno=new JTextField();
		txtname=new JTextField();
		txtbsalary=new JTextField();
		txthra=new JTextField();
		txtda=new JTextField();
		txtpf=new JTextField();
		txtallow=new JTextField();

		btnsave.addActionListener(this);
		btnupdate.addActionListener(this);
		btndelete.addActionListener(this);
		btnexit.addActionListener(this);
		
	}
	public void actionPerformed(ActionEvent ae)
	{
		if(ae.getSource()==btnsave)
		{
			
			try
			{
				
				
			}
			catch(Exception ex)	
			{
				System.out.println(ex);
			}
		}
		if(ae.getSource()==btnexit)
		{
			System.exit(0);
		}
		if(ae.getSource()==btndelete)
		{
			int id=Integer.valueOf(txtempno.getText());
			try
			{
				
			}
			catch(Exception ex)
			{
				System.out.println(ex);	
			}
		}
	}
	
	}
	


class MainEMS
{
	public static void main(String args[]) 
	{
		Login l=new Login();
		l.setTitle("Employee Management System");
		l.setSize(300,300);
		l.setVisible(true);
		
	}
}
Posted
Updated 4-Nov-15 1:12am
v2
Comments
Richard MacCutchan 4-Nov-15 7:36am    
Where does the exception occur? If necessary use your debugger to find the offending reference.
A94 4-Nov-15 9:41am    
I am using notepad. The error occurs when I click on "save" button in Employee Class.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900