I have 2 Classes. HardwareMenu and PurchaseBill. After I click Purchase Product or Purchase Bill from the HardwareMenu class Im redirected towards the Purchase Bill class and i get the this error "null null java.lang.NullPointerException" I am using JDK 8 Using UcanAccess to connect with MS Access 2007.
Exception
java.lang.NullPointerException
at PurchaseBill$1.focusGained(PurchaseBill.java:156)
at java.awt.AWTEventMulticaster.focusGained(Unknown Source)
at java.awt.Component.processFocusEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Sour
ce)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(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.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionP
rivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionP
rivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionP
rivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(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)
Here is the code
class HardwareMenu extends A implements ActionListener//,MouseListene
{
JMenuBar mb;
JMenu menuAdd,menuMaster,menuMaintenance,menuReport,menuUserAc,menuHelp;
JMenuItem mItemCust,mItemAgent,mItemNewAc,mItemAccount,mItemEmp,mItemTrans,mItemEnq;
JMenuItem mRptAccTypes,mRptAgent,mRptCustTransaction,mRptCustAcc,mRptReorderSTK,mRptSafetySTK;
JMenuItem mItemChangePass,mItemLogOff,mItemExit,mItemAboutUs,mItemCont;
JButton b1=new JButton("Sale Product");
JButton b2=new JButton("Purchase Product");
JButton b3=new JButton("Show Reorder Level");
JButton b4=new JButton("Show Safety Level");
JButton b5=new JButton("Logoff");
JButton b6=new JButton("Exit");
JLabel l1[]=new JLabel[11];
JPanel pt=new JPanel();
//Thread th=new Thread(this);
//String stitle[]={"A","iSva","naI "," ha","D-","vao","A","r "," isa","sTI","ma"};
JLabel stitl;
public HardwareMenu()
{
setLayout(null);
stitl=new JLabel("Balaji Enterprises");
stitl.setFont(new Font("Arial", Font.BOLD,50));
//stitl.setForeground(new Color(255,0,0));
mb=new JMenuBar();
//Create Menu
mb.setFont(new Font("Arial",Font.BOLD,20));
//Create MenuItems
menuAdd=new JMenu("Add");
mItemCust=new JMenuItem("Suppiler");
//Master
menuMaster=new JMenu("Transaction");
mItemNewAc=new JMenuItem("Sale Bill");
mItemTrans=new JMenuItem("Purchase Bill");
//Maintenance
menuMaintenance=new JMenu("Maintenance");
mItemAccount=new JMenuItem("Stock");
mItemEmp=new JMenuItem("Employee");
//Report
menuReport=new JMenu("Report");
mRptAccTypes=new JMenuItem("Stock Report");
menuUserAc=new JMenu("User Account");
mItemChangePass=new JMenuItem("Change Password");
mItemLogOff=new JMenuItem("Log Off");
mItemExit=new JMenuItem("Exit");
//MenuBar Set
setJMenuBar(mb);
mb.setFont(new Font("",Font.BOLD,18));
//AddMenus
mb.add(menuAdd);
//subMenu of Add
menuAdd.add(mItemCust); mItemCust.addActionListener(this); menuAdd.addSeparator();
menuAdd.add(mItemEmp); mItemEmp.addActionListener(this); menuAdd.addSeparator();
mb.add(menuMaster);
//subMenu of Master
menuMaster.add(mItemNewAc); mItemNewAc.addActionListener(this); menuMaster.addSeparator();
menuMaster.add(mItemTrans); mItemTrans.addActionListener(this);
mb.add(menuMaintenance);
//Submenu for Maintenance
menuMaintenance.add(mItemAccount); mItemAccount.addActionListener(this);
mb.add(menuReport);
//submenu for report
menuReport.add(mRptAccTypes); mRptAccTypes.addActionListener(this); menuReport.addSeparator();
mb.add(menuUserAc);
//submenu for UserAc
menuUserAc.add(mItemChangePass); mItemChangePass.addActionListener(this); menuUserAc.addSeparator();
menuUserAc.add(mItemLogOff); mItemLogOff.addActionListener(this); menuUserAc.addSeparator();
menuUserAc.add(mItemExit); mItemExit.addActionListener(this);
//Panels-----------------------------------------------------------------------
p1.setBounds(0,0,screen.width,150);
// for(i=0;i<11;i++)
// l1[i].addMouseListener(this);
//
// for(i=0;i<11;i++)
// p1.add(l1[i]);
//
p1.add(stitl);
add(p1);
p2.setBounds(0,150,screen.width,50);
p2btn.setLayout(new GridLayout(1,6,50,1));
p2btn.add(b1); b1.addActionListener(this);
p2btn.add(b2); b2.addActionListener(this);
p2btn.add(b3); b3.addActionListener(this);
p2btn.add(b4); b4.addActionListener(this);
p2btn.add(b5); b5.addActionListener(this);
p2btn.add(b6); b6.addActionListener(this);
p2.add(p2btn);
p3.setBounds(0,200,swidth,sheight);
add(p2);
p2.add(p2btn,new BorderLayout().CENTER);
add(p3);
setSize((screen.width),(screen.height-30));
setLocation(0,0);
setVisible(true);
// th.start();
}
public void actionPerformed(ActionEvent a)
{
//Short cut bUttons
if(a.getSource()==b1)
new Bill();
if(a.getSource()==b2)
new PurchaseBill();
if(a.getSource()==b3)
new ReportReorderLevel();
if(a.getSource()==b4)
new ReportSafetyLevel();
if(a.getSource()==b5)
{
new Log();
dispose();
}
if(a.getSource()==b6)
System.exit(0);
//Add
if(a.getSource()==mItemCust)
{
new AddSup();
}
if(a.getSource()==mItemEmp)
{
new AddEmp();
}
//if(a.getSource()==mItemAgent)
{
// new Enquiry();
}
//Transaction
if(a.getSource()==mItemNewAc)
{
new Bill();
}
if(a.getSource()==mItemTrans)
{
new PurchaseBill();
}
//Maintenance
if(a.getSource()==mItemAccount)
{
new Stock();
}
//Report
if(a.getSource()==mRptAccTypes)
{
new ReportStock();
}
//User Account
if(a.getSource()==mItemChangePass)
{
new ChangePassword();
}
if(a.getSource()==mItemLogOff)
{
new Log();
dispose();
}
if(a.getSource()==mItemExit)
{
System.exit(0);
}
}
public void mouseReleased (MouseEvent me)
{
System.out.println("d");
}
public void mouseClicked (MouseEvent me)
{
System.out.println("d");
}
public void mousePressed (MouseEvent me)
{
System.out.println("d");
}
public static void main(String args[])
{
new HardwareMenu();
}
}
public class PurchaseBill extends A implements ActionListener
{
static float total=0.0f;
static int r;
JTextField[] inputText1=new JTextField[20];
String h[]={"Equipment ID","Equipment Name","Quantity","Price"};
JScrollPane jpane;
JTable jt;
DefaultTableModel model;
String data[][] = {{""}};
String col[] = {"Equipment ID","Equipment Name","Quantity","Price"};
int rcnt=0;
//JButton b1=new JButton("...");
public PurchaseBill()
{
setLayout(null);
// String record[][]=new String [0][5];
System.out.println("Reached 2");
model = new DefaultTableModel(data,col);
jt = new JTable(model);
//jt=new JTable(record,h);
jpane=new JScrollPane(jt,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//jpane.setBackground(new Color(160,200,100));
jpane.setBounds(0,0,200,200);
jt.setAutoCreateRowSorter(true);
add.addActionListener(this);
rem.addActionListener(this);
//Title
// title=new JLabel("Bill Details",JLabel.CENTER);
// title.setFont(new Font("Cambria", Font.BOLD, 14));
infoLabel[1] = new JLabel("Purchase ID",JLabel.LEFT);
infoLabel[2] = new JLabel("Suppiler ID",JLabel.LEFT);
infoLabel[3] = new JLabel("Suppiler Name",JLabel.LEFT);
infoLabel[4] = new JLabel("Purchase Date",JLabel.LEFT);
infoLabel[6] = new JLabel("Equipment Name",JLabel.LEFT);
infoLabel[7] = new JLabel("Total",JLabel.LEFT);
infoLabel[8] = new JLabel("Qunatity",JLabel.LEFT);
infoLabel[9] = new JLabel("Rate(in Rs-/)",JLabel.LEFT);
inputText1[1] = new JTextField(20);
inputText1[2] = new JTextField(20);
inputText1[3] = new JTextField(20);
inputText1[4] = new JTextField(15);
System.out.println("Reached 3");
try
{
System.out.println("Reached 4");
rs=st.executeQuery("select EName from Stock");
System.out.println("Reached 5");
while(rs.next())
eqname.add(rs.getString(1));
System.out.println("Reached 6");
}catch(Exception e){e.printStackTrace();}
inputText[7] = new JTextField(10);inputText[7].setText(new Float(total).toString());
inputText[8] = new JTextField(10);
inputText[9] = new JTextField(10);
//Customer Bill Info Panel
p1.setLayout(new GridLayout(5, 2,0,3));
p1.add(infoLabel[1]); p1.add(inputText[1]);
p1.add(infoLabel[2]); p1.add(inputText[2]);
p1.add(infoLabel[3]); p1.add(inputText[3]);
p1.add(infoLabel[4]); p1.add(inputText[4]);
//btn panel
btn.setLayout(new GridLayout(3,1,0,2));
//btn.add(b1);b1.addActionListener(this);
mid.add(p1,BorderLayout.EAST);
mid.add(btn,BorderLayout.WEST);
mid.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(Color.BLACK,Color.BLACK),"Account Details"));
//panels for purchase list
p2.setLayout(new FlowLayout());//GridLayout(1,7)
p2.add(infoLabel[6]); p2.add(eqname);
p2.add(infoLabel[8]); p2.add(inputText[8]);
p2.add(infoLabel[9]); p2.add(inputText[9]);
p2.add(add); p2.add(rem);
//panel for grid
//p3.setLayout(new GridLayout(1,1));
//jpane.setBounds(10,20,20,20);
//p3.add(jpane);
//Add Buttons to Panels
p4.setLayout(new FlowLayout());
p4.add(save); save.addActionListener(this);
p4.add(reset); reset.addActionListener(this);
p4.add(OKButton); OKButton.addActionListener(this);
p4.add(infoLabel[7]);
p4.add(inputText[7]);
mid.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(Color.BLACK,Color.BLACK),"Cutomer Details"));
p.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(Color.BLACK,Color.BLACK),"Purchease Details"));
//p3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(Color.BLACK,Color.BLACK),""));
//purdet.setLayout(new BorderLayout());
p.setLayout(new BorderLayout());
p.add(p2,BorderLayout.NORTH);
p.add(jpane,BorderLayout.CENTER);
p.add(p4,BorderLayout.SOUTH); // p.add(jpane,BorderLayout.CENTER);
this.setLayout(new GridLayout(2,1));
// p123.add(p1);
add(mid,BorderLayout.NORTH);
add(p,BorderLayout.SOUTH);
//Auto Genrating Book ID
System.out.println("Reached 7");
id();
//date/time*********************
Dt f=new Dt();
inputText[4].setText(d);
//************************
//Read Only**********************
inputText[1].setEnabled(false);
inputText[4].setEnabled(false);
//**************************
//Team ID************************************
inputText[2].addFocusListener(new FocusAdapter()
{ public void focusGained(FocusEvent e)
{
try {
System.out.println(Supp_id+" "+Supp_name);
inputText[2].setText(Supp_id.toString());
inputText[3].setText(Supp_name.toString());
}catch (Exception nfe)
{
System.out.println(nfe);
getToolkit().beep();
inputText[2].requestFocus();
}
}
});
//**************************************************
//Window Arrangment
setTitle("Purchase Details");
setSize(800,400);
setLocation(320,200);
setVisible(true);
//setResizable(false);
}
public void id()
{
//Auto Genrating Book ID
try
{
System.out.println("Reached 8");
str="select * from Purchase";
rs=st.executeQuery(str);
System.out.println("Reached 9");
int rcount=0;
while(rs.next())
rcount++;
System.out.println("Reached 10");
if(rcount==0)
inputText[1].setText("PUR00001");
else
{
rcount=rcount+1;
if(rcount>0)
inputText[1].setText("PUR0000"+rcount);
if(rcount>9)
inputText[1].setText("PUR000"+rcount);
if(rcount>99)
inputText[1].setText("PUR00"+rcount);
if(rcount>999)
inputText[1].setText("PUR0"+rcount);
if(rcount>999)
inputText[1].setText("PUR"+rcount);
}
}catch(Exception adde){System.out.println("AUTO NUMBERING"+adde);}
}
public void cleartext()
{
for(int i=2;i<=6;i++)
inputText[i].setText("");
}
public void actionPerformed(ActionEvent ae)
{
// if(ae.getSource()==b1)
// {
// new ReportSupplier();
// }
if(ae.getSource()==add)
{
String BillID=inputText[1].getText();
String date=inputText[2].getText();
String name=inputText[3].getText();
String PhoneNo=inputText[4].getText();
String EquiID="";
String EqID=eqname.getSelectedItem();
String Qty=inputText[8].getText();
String Rate=inputText[9].getText();
try
{
str="select * from Stock where EName='"+EqID+"'";
rs=st.executeQuery(str);
rs.first();
EquiID=rs.getString(1);
}
catch(Exception ee)
{
System.out.println(ee);
}
Validate v= new Validate();
if(v.checkBlank(Qty,this,"Quantity"))
return;
if(v.checkBlank(Rate,this,"Rate"))
return;
//For Number validation
if(v.checkOnlyNumber(Qty,this,"Quantity"))
return;
if(v.checkOnlyNumber(Rate,this,"Rate"))
return;
try{
int rr=(jt.getRowCount())-1;
jt.setValueAt(EquiID,rr,0);//Equip ID
jt.setValueAt(EqID,rr,1);//name of Equipment
//jt.setValueAt(rsDesc,rr,2);//compnay
jt.setValueAt(Qty,rr,2);//qty
jt.setValueAt(Rate,rr,3);//rate
rr++;
model.insertRow(jt.getRowCount(),new Object[]{"","","","",""});
System.out.println("After new ROW COUNT === "+jt.getRowCount());
total=total+Integer.parseInt(Qty)*Float.parseFloat(Rate);
inputText[7].setText(""+total);
// int n=st.executeUpdate("insert into purchase
values('"+BillID+"','"+ClothID+"',"+Quantity+","+Rate+")");
// if(n>0)
// JOptionPane.showMessageDialog(this,"Item Inserted in Purchease Master");
}catch(Exception ex){ex.printStackTrace();}
}
if(ae.getSource()==rem)
{
int rd=jt.getSelectedRow();
Object chkItem=jt.getValueAt(rd,0);
System.out.println(""+chkItem);//Equip ID
if(chkItem==null)
{
JOptionPane.showMessageDialog(this,"Please select Items!");
return;
}
else
{
total-=Float.parseFloat(jt.getValueAt(rd,2).toString())* Float.parseFloat(jt.getValueAt(rd,3).toString());
inputText[7].setText(""+total);
model.removeRow(rd);
}
}
if(ae.getSource()==OKButton)
{
dispose();
}
if(ae.getSource()==reset)
{
cleartext();
}
if(ae.getSource()==save)
{
String BillId=inputText[1].getText();
String suppid=inputText[2].getText();
//String phno=inputText[3].getText();
String date=inputText[4].getText();
String tot=inputText[7].getText();
Validate v= new Validate();
//validation for blank field
if(v.checkBlank(suppid,this,"Name"))
return;
// if(v.checkBlank(phno,this,"Phone No"))
// return;
//validation for text only
// if(v.checkOnlyText(cname,this,"Name"))
// return;
//validation for Numbers
// if(v.checkOnlyNumber(phno,this,"Phone No"))
// return;
if(tot.equals("0.0"))
{
JOptionPane.showMessageDialog(this,"Total is Zero!");
return;
}
System.out.println("SAVE COUNT "+(jt.getRowCount()-1));
if((jt.getRowCount()-1)==0)
{
JOptionPane.showMessageDialog(this,"No Item Purcheased!");
return;
}
try
{
String sst="insert into Purchase values('"+inputText[1].getText()+"','"+inputText[2].getText()+"','"+inputText[4].getText()+"',"+inputText[7].getText()+")";
System.out.println(sst);
int dbil=st.executeUpdate(sst);
// batchSt.addBatch(sst);
if(dbil>0)
{
//Purchase List
int loopCnt=(jt.getRowCount()-1),i=0;
String str[]=new String[loopCnt];
String sQtyU="";
while(i<loopCnt)
{
int dd=0;
try
{
sQtyU="UPDATE Stock SET Quantity = Quantity+"+Integer.parseInt(inputText[8].getText())+", UnitPrice="+jt.getValueAt(i,3)+" WHERE (((Stock.[EquipmentID])='"+jt.getValueAt(i,0)+"'))";
// sQtyU="update Stock set Qty=Qty-"+Integer.parseInt(jt.getValueAt(i,3).toString())+" where EquipmentID='"+jt.getValueAt(i,0).toString()+"'";
System.out.println(sQtyU);
dd=st2.executeUpdate(sQtyU);
}
catch(Exception er)
{
System.out.println("Qty Update Err"+er);
}
// if(dd>0)
// {
str[i]="insert into PurchaseList values('"+inputText[1].getText()+"','"+jt.getValueAt(i,0).toString()+"',"+jt.getValueAt(i,2).toString()+","+jt.getValueAt(i,3).toString()+")";
System.out.println(str[i]);
//batchSt.addBatch(str[i]);
st.executeUpdate(str[i]);
i++;
// }
}
// int[] updCnt = st.executeBatch();
// System.out.println("updCnt[0]");
// con.commit() ;
// System.out.println("Trans...sucessful");
JOptionPane.showMessageDialog(this,"Successfully Stored..!!");
dispose();
}
}
catch(BatchUpdateException ert)
{
System.out.println("Error for save Buying list "+ert);
int[] counts = ert.getUpdateCounts();
for (int i=0;i<counts.length; i++)
{
System.out.println("Statement["+i+"] :"+counts[i]);
}
try
{
con.rollback() ;
}
catch(Exception e){e.printStackTrace();}
}
catch (SQLException e1) {e1.printStackTrace(); }
}
}
public static void main(String args[])
{
System.out.println("Reached 1");
new PurchaseBill();
}
}