mcowman
asked on
Problem with Listener for an SQL statement
Hi
In the below program, when you click on the "ok" button, an SQL statement is supposed to run and add whatever info you typed into a database. It compiles fine, but when I get to click the button it gives the error message.
Java.lang.nullpointerexcep tion
It does not even get to the SQL part so it must be the listener
I have include the code in its entirety and below that the problem area, Can any one tell me where I'm going wrong???? Thanks!!!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
import java.net.*;
class Test extends JFrame{ //class open
//Step 2:: Global definitions of Panels
JPanel z1;
JPanel m1;
JPanel a1;
Container cont;
// Global defintion of text fields/buttons/strings etc..
private JButton b1,b2,b3,b4,b5;
private JLabel l1,l2,l3,addmemberlabel2,a ddmemberla bel3,addme mberlabel4 ,addmember label5,add memberlabe l6,addmemb erlabel7,a ddmemberla bel8,addme mberlabel9 ,addmember label10,ad dmemberlab el11;
private JTextField t1,t2,addmembertfield1,add membertfie ld2,addmem bertfield3 ,addmember tfield4,ad dmembertfi eld5,addme mbertfield 6,addmembe rtfield7,a ddmembertf ield8,addm embertfiel d9,addmemb ertfield10 ,addmember tfield11;
private String username,password,password Cpr,firstn ame,lastna me,address ,town,coun ty,height, phone,age, gender,dat ereg,membe rid;
//needed to connect to database
boolean databaseConnect= false;
private java.sql.Connection con=null;
// Constructor
public Test()
{ // constructor open
// set title of frame
setTitle("Technofit");
// Set Size of Frame (default is 0,0)
setSize(200,350);
//set location of Frame (default is 0,0 - top left corner)
setLocation(10,100);
// Calls another java program stored in same folder and applies it to this program
WindowUtilities.setNativeL ookAndFeel ();
// calls the databaseConnect function/method
databaseConnect();
//Step 3:: initialise panels
m1 = new JPanel();
a1 = new JPanel();
z1 = new JPanel();
//create button
b2 = new JButton("Login");
//create labels
l2 = new JLabel("Username");
l3 = new JLabel("Password");
// create texfields
t1 = new JTextField(15);
t2 = new JTextField(15);
//add button as Listener
b2.addActionListener(new MemberScreen(getContentPan e()));
//add button/texfields/labels to panel
z1.add(l2);
z1.add(t1);
z1.add(l3);
z1.add(t2);
z1.add(b2);
// create button
b1 = new JButton("Add Member ");
// add button as an event listener
b1.addActionListener(new MemberAddScreen(getContent Pane()));
// add buttons to current panel
m1.add(b1);
// create button
b4 = new JButton("OK ");
b5 = new JButton("Logout");
// add button as an event listener
b4.addActionListener(new MemberaddDetails(getConten tPane()));
b5.addActionListener(new Logout());
// create labels/textfields
l1 = new JLabel("Firstname ");
addmemberlabel2 = new JLabel("Lastname");
addmemberlabel3 = new JLabel("Address1 ");
addmemberlabel4 = new JLabel("Town ");
addmemberlabel5 = new JLabel("County ");
addmemberlabel6 = new JLabel("Height ");
addmemberlabel7 = new JLabel("phone no ");
addmemberlabel8 = new JLabel("Age ");
addmemberlabel9 = new JLabel("Gender");
addmemberlabel10= new JLabel("Date Registered");
addmemberlabel11 = new JLabel("Member ID");
JTextField addmembertfield1 = new JTextField(15);
JTextField addmembertfield2 = new JTextField(15);
JTextField addmembertfield3 = new JTextField(15);
JTextField addmembertfield4 = new JTextField(15);
JTextField addmembertfield5 = new JTextField(15);
JTextField addmembertfield6 = new JTextField(15);
JTextField addmembertfield7 = new JTextField(15);
JTextField addmembertfield8 = new JTextField(15);
JTextField addmembertfield9 = new JTextField(15);
JTextField addmembertfield10 = new JTextField(6);
JTextField addmembertfield11 = new JTextField(15);
//add buttons,texfields to panel a1
a1.add(l1);
a1.add(addmembertfield1);
a1.add(addmemberlabel2);
a1.add(addmembertfield2);
a1.add(addmemberlabel3);
a1.add(addmembertfield3);
a1.add(addmemberlabel4);
a1.add(addmembertfield4);
a1.add(addmemberlabel5);
a1.add(addmembertfield5);
a1.add(addmemberlabel6);
a1.add(addmembertfield6);
a1.add(addmemberlabel7);
a1.add(addmembertfield7);
a1.add(addmemberlabel8);
a1.add(addmembertfield8);
a1.add(addmemberlabel9);
a1.add(addmembertfield9);
a1.add(addmemberlabel10);
a1.add(addmembertfield10);
a1.add(addmembertfield11);
a1.add(b4);
a1.add(b5);
// Add Panels
Container contentPane = getContentPane();
//Step 3:: Add Panels to frame
contentPane.add(z1);
// Window Listener
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose(); //terminates/frees up system resource
System.exit(0);
} //windowClosing
} ); //windowAdapter
} // constructor close
/*
************************** ********** ********** ********** ********** ********** ********** ********** ********** ********** *******
*/
class Logout implements ActionListener
{
public void actionPerformed(ActionEven t e)
{
System.out.println("Test") ;
}
}
class MemberaddDetails implements ActionListener
{
String firstname;
String lastname;
String address;
String town;
String county;
String Height;
String phone;
String age;
String gender;
String datereg;
String memberid;
Container cont; // content pane is passed to listener
public MemberaddDetails(Container c) {
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven t e)
{
Container cont;
firstname = addmembertfield1.getText() ;
System.out.println(firstna me);
lastname = addmembertfield2.getText() ;
address = addmembertfield3.getText() ;
town = addmembertfield4.getText() ;
county = addmembertfield5.getText() ;
height = addmembertfield6.getText() ;
phone = addmembertfield7.getText() ;
age = addmembertfield8.getText() ;
gender = addmembertfield9.getText() ;
datereg = addmembertfield10.getText( );
memberid = addmembertfield11.getText( );
addMemberSQL();
}
}
//listener class
class LogoutReceptionist implements ActionListener
{
public void actionPerformed(ActionEven t e)
{
System.exit(0);
} //windowClosing
} //windowAdapter
//listener class
class MemberAddScreen implements ActionListener
{
Container cont; // content pane is passed to listener
public MemberAddScreen(Container c) {
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven t e)
{ // open action performed.
// remove all panels from frame
cont.removeAll();
// add panel a1
cont.add(a1);
// refreshes the screen
((JComponent)cont).revalid ate();
((JComponent)cont).repaint ();
} //close action performed
} //close class memberadd screen
class MemberScreen implements ActionListener
{
String username;
String password;
String passwordCpr;
Container cont; // content pane is passed to listener
public MemberScreen(Container c) {
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven t e)
{
Container cont;
username = t1.getText();
password = t2.getText();
executeSQL();
}
public void executeSQL() {
ResultSet rset = null;
int colCount = -1;
boolean success = false;
try
{
Statement s = con.createStatement();
String sqlStr = "SELECT password FROM Password WHERE username='"+username+"';";
rset = s.executeQuery(sqlStr);
rset.next();
passwordCpr = rset.getString(1);
if(password.compareTo(pass wordCpr)== 0)
{
cont.removeAll();
cont.add(m1);
((JComponent)cont).revalid ate();
((JComponent)cont).repaint ();
}
else{
l3.setText("Your are not authorised to access");
t1.requestFocus();
t2.setText("");
t2.setText("");
password = "";
}
}
catch (SQLException sqlex)
{
System.err.println(sqlex.g etMessage( ));
success = false;
} }
}
class MainPanel extends JPanel
{
// members
private JButton b2;
// constructors:
public MainPanel()
{
} // constructor MainPanel
} // Class MainPanel
public void databaseConnect()
{
String databaseName = null;
try{
Class.forName("sun.jdbc.od bc.JdbcOdb cDriver");
System.out.println("Found the drivers");
}
catch (ClassNotFoundException cnfe){
System.err.println(cnfe.ge tMessage() );
databaseConnect = false;
return;
}
System.out.println("Will try to connect to Database now");
try{
String url ="jdbc:odbc:DRIVER={Micros oft Access Driver (*.mdb)};DBQ=F:\\pro\\db1. mdb";
con = DriverManager.getConnectio n(url, "", "");
databaseConnect = true;
System.out.println("Connec ted to Database");
}
catch(SQLException e){
System.err.println(e.getMe ssage());
databaseConnect = false;
return;
}
}
public void addMemberSQL(){
try {
Statement st = con.createStatement();
st.executeUpdate("INSERT INTO Members " +"(First Name, Last Name, Town, County, Height, Telephone_no,Age,Gender, Date_Registered,Memberid)" +
"VALUES"+" ('"+firstname+"','"+lastna me+"','"+a ddress+"', '"+town+"' ,'"+county +"','"+hei ght+"','"+ phone+"',' "+age+"',' "+gender+" ','"+dater eg+"')");
con.close();
}
catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMe ssage());
}
finally{
if(con != null)
{
try{
con.close();
}
catch(Exception ignored) {}
}
}
}
class MemberPanel extends JPanel
{
// members
private JButton b1;
// constructors:
public MemberPanel()
{
// create button
b1 = new JButton("Add Member ");
// add button as an event listener
b1.addActionListener(new MemberAddScreen(getContent Pane()));
// add buttons to current panel
add(b1);
setVisible(true);
} // constructor MainPanel
} // Class MainPanel
class AddMemberPanel extends JPanel
{
// members
private JLabel l1,addmemberlabel2,addmemb erlabel3,a ddmemberla bel4,addme mberlabel5 ,addmember label6,add memberlabe l7,addmemb erlabel8,a ddmemberla bel9,addme mberlabel1 0;
private JTextField ddmembertfield1,addmembert field2,add membertfie ld3,addmem bertfield4 addmembert field5,add membertfie ld6,addmem bertfield7 ,addmember tfield8,ad dmembertfi eld9,addme mbertfield 10;
// constructors:
public AddMemberPanel()
{
GridBagConstraints c = new GridBagConstraints();
setLayout(new GridBagLayout());
// create button
l1 = new JLabel("Firstname ");
addmemberlabel2 = new JLabel("Lastname");
addmemberlabel3 = new JLabel("Address");
addmemberlabel4 = new JLabel("Town");
addmemberlabel5 = new JLabel("County");
addmemberlabel6 = new JLabel("Height");
addmemberlabel7 = new JLabel("Phone no");
addmemberlabel8 = new JLabel("Age ");
addmemberlabel9 = new JLabel("Gender");
addmemberlabel10 = new JLabel("Date Registered");
JTextField addmembertfield1 = new JTextField(15);
JTextField addmembertfield2 = new JTextField(15);
JTextField addmembertfield3 = new JTextField(15);
JTextField addmembertfield4 = new JTextField(15);
JTextField addmembertfield5 = new JTextField(15);
JTextField addmembertfield6 = new JTextField(15);
JTextField addmembertfield7 = new JTextField(15);
JTextField addmembertfield8 = new JTextField(15);
JTextField addmembertfield9 = new JTextField(15);
JTextField addmembertfield10 = new JTextField(11);
// add buttons to current panel
/* c.gridx = 0;
c.gridy = 10;
c.gridwidth = 15;
c.gridheight = 5;
add(l1,c);
add(addmembertfield1);
c.gridx = 0;
c.gridy = 20;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel2,c);
add(addmembertfield2);
c.gridx = 0;
c.gridy = 30;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel3,c);
add(addmembertfield3);
c.gridx = 0;
c.gridy = 40;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel4,c);
add(addmembertfield4);
c.gridx = 0;
c.gridy = 50;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel5,c);
add(addmembertfield5);
c.gridx = 0;
c.gridy = 60;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel6,c);
add(addmembertfield6);
c.gridx = 0;
c.gridy = 70;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel7,c);
add(addmembertfield7);
c.gridx = 0;
c.gridy = 80;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel8);
add(addmembertfield8);
c.gridx = 0;
c.gridy = 90;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel9,c);
add(addmembertfield9);
c.gridx = 0;
c.gridy = 100;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel10,c);
add(addmembertfield10); */
} // constructor MainPanel
} // Class MainPanel
public static void main(String[] args) {
JFrame frame1 = new Test();
frame1.show();
} ;
} // class close
************************** ********** ********** ********** ********** *****
class MemberaddDetails implements ActionListener
{
String firstname;
String lastname;
String address;
String town;
String county;
String Height;
String phone;
String age;
String gender;
String datereg;
String memberid;
Container cont; // content pane is passed to listener
public MemberaddDetails(Container c) {
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven t e)
{
Container cont;
firstname = addmembertfield1.getText() ;
System.out.println(firstna me);
lastname = addmembertfield2.getText() ;
address = addmembertfield3.getText() ;
town = addmembertfield4.getText() ;
county = addmembertfield5.getText() ;
height = addmembertfield6.getText() ;
phone = addmembertfield7.getText() ;
age = addmembertfield8.getText() ;
gender = addmembertfield9.getText() ;
datereg = addmembertfield10.getText( );
memberid = addmembertfield11.getText( );
addMemberSQL();
}
}
************************** ********** ********** ********** ********** *****
public void addMemberSQL(){
try {
Statement st = con.createStatement();
st.executeUpdate("INSERT INTO Members " +"(First Name, Last Name, Town, County, Height, Telephone_no,Age,Gender, Date_Registered,Memberid)" +
"VALUES"+" ('"+firstname+"','"+lastna me+"','"+a ddress+"', '"+town+"' ,'"+county +"','"+hei ght+"','"+ phone+"',' "+age+"',' "+gender+" ','"+dater eg+"')");
con.close();
}
catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMe ssage());
}
finally{
if(con != null)
{
try{
con.close();
}
catch(Exception ignored) {}
}
}
}
In the below program, when you click on the "ok" button, an SQL statement is supposed to run and add whatever info you typed into a database. It compiles fine, but when I get to click the button it gives the error message.
Java.lang.nullpointerexcep
It does not even get to the SQL part so it must be the listener
I have include the code in its entirety and below that the problem area, Can any one tell me where I'm going wrong???? Thanks!!!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
import java.net.*;
class Test extends JFrame{ //class open
//Step 2:: Global definitions of Panels
JPanel z1;
JPanel m1;
JPanel a1;
Container cont;
// Global defintion of text fields/buttons/strings etc..
private JButton b1,b2,b3,b4,b5;
private JLabel l1,l2,l3,addmemberlabel2,a
private JTextField t1,t2,addmembertfield1,add
private String username,password,password
//needed to connect to database
boolean databaseConnect= false;
private java.sql.Connection con=null;
// Constructor
public Test()
{ // constructor open
// set title of frame
setTitle("Technofit");
// Set Size of Frame (default is 0,0)
setSize(200,350);
//set location of Frame (default is 0,0 - top left corner)
setLocation(10,100);
// Calls another java program stored in same folder and applies it to this program
WindowUtilities.setNativeL
// calls the databaseConnect function/method
databaseConnect();
//Step 3:: initialise panels
m1 = new JPanel();
a1 = new JPanel();
z1 = new JPanel();
//create button
b2 = new JButton("Login");
//create labels
l2 = new JLabel("Username");
l3 = new JLabel("Password");
// create texfields
t1 = new JTextField(15);
t2 = new JTextField(15);
//add button as Listener
b2.addActionListener(new MemberScreen(getContentPan
//add button/texfields/labels to panel
z1.add(l2);
z1.add(t1);
z1.add(l3);
z1.add(t2);
z1.add(b2);
// create button
b1 = new JButton("Add Member ");
// add button as an event listener
b1.addActionListener(new MemberAddScreen(getContent
// add buttons to current panel
m1.add(b1);
// create button
b4 = new JButton("OK ");
b5 = new JButton("Logout");
// add button as an event listener
b4.addActionListener(new MemberaddDetails(getConten
b5.addActionListener(new Logout());
// create labels/textfields
l1 = new JLabel("Firstname ");
addmemberlabel2 = new JLabel("Lastname");
addmemberlabel3 = new JLabel("Address1 ");
addmemberlabel4 = new JLabel("Town ");
addmemberlabel5 = new JLabel("County ");
addmemberlabel6 = new JLabel("Height ");
addmemberlabel7 = new JLabel("phone no ");
addmemberlabel8 = new JLabel("Age ");
addmemberlabel9 = new JLabel("Gender");
addmemberlabel10= new JLabel("Date Registered");
addmemberlabel11 = new JLabel("Member ID");
JTextField addmembertfield1 = new JTextField(15);
JTextField addmembertfield2 = new JTextField(15);
JTextField addmembertfield3 = new JTextField(15);
JTextField addmembertfield4 = new JTextField(15);
JTextField addmembertfield5 = new JTextField(15);
JTextField addmembertfield6 = new JTextField(15);
JTextField addmembertfield7 = new JTextField(15);
JTextField addmembertfield8 = new JTextField(15);
JTextField addmembertfield9 = new JTextField(15);
JTextField addmembertfield10 = new JTextField(6);
JTextField addmembertfield11 = new JTextField(15);
//add buttons,texfields to panel a1
a1.add(l1);
a1.add(addmembertfield1);
a1.add(addmemberlabel2);
a1.add(addmembertfield2);
a1.add(addmemberlabel3);
a1.add(addmembertfield3);
a1.add(addmemberlabel4);
a1.add(addmembertfield4);
a1.add(addmemberlabel5);
a1.add(addmembertfield5);
a1.add(addmemberlabel6);
a1.add(addmembertfield6);
a1.add(addmemberlabel7);
a1.add(addmembertfield7);
a1.add(addmemberlabel8);
a1.add(addmembertfield8);
a1.add(addmemberlabel9);
a1.add(addmembertfield9);
a1.add(addmemberlabel10);
a1.add(addmembertfield10);
a1.add(addmembertfield11);
a1.add(b4);
a1.add(b5);
// Add Panels
Container contentPane = getContentPane();
//Step 3:: Add Panels to frame
contentPane.add(z1);
// Window Listener
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose(); //terminates/frees up system resource
System.exit(0);
} //windowClosing
} ); //windowAdapter
} // constructor close
/*
**************************
*/
class Logout implements ActionListener
{
public void actionPerformed(ActionEven
{
System.out.println("Test")
}
}
class MemberaddDetails implements ActionListener
{
String firstname;
String lastname;
String address;
String town;
String county;
String Height;
String phone;
String age;
String gender;
String datereg;
String memberid;
Container cont; // content pane is passed to listener
public MemberaddDetails(Container
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven
{
Container cont;
firstname = addmembertfield1.getText()
System.out.println(firstna
lastname = addmembertfield2.getText()
address = addmembertfield3.getText()
town = addmembertfield4.getText()
county = addmembertfield5.getText()
height = addmembertfield6.getText()
phone = addmembertfield7.getText()
age = addmembertfield8.getText()
gender = addmembertfield9.getText()
datereg = addmembertfield10.getText(
memberid = addmembertfield11.getText(
addMemberSQL();
}
}
//listener class
class LogoutReceptionist implements ActionListener
{
public void actionPerformed(ActionEven
{
System.exit(0);
} //windowClosing
} //windowAdapter
//listener class
class MemberAddScreen implements ActionListener
{
Container cont; // content pane is passed to listener
public MemberAddScreen(Container c) {
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven
{ // open action performed.
// remove all panels from frame
cont.removeAll();
// add panel a1
cont.add(a1);
// refreshes the screen
((JComponent)cont).revalid
((JComponent)cont).repaint
} //close action performed
} //close class memberadd screen
class MemberScreen implements ActionListener
{
String username;
String password;
String passwordCpr;
Container cont; // content pane is passed to listener
public MemberScreen(Container c) {
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven
{
Container cont;
username = t1.getText();
password = t2.getText();
executeSQL();
}
public void executeSQL() {
ResultSet rset = null;
int colCount = -1;
boolean success = false;
try
{
Statement s = con.createStatement();
String sqlStr = "SELECT password FROM Password WHERE username='"+username+"';";
rset = s.executeQuery(sqlStr);
rset.next();
passwordCpr = rset.getString(1);
if(password.compareTo(pass
{
cont.removeAll();
cont.add(m1);
((JComponent)cont).revalid
((JComponent)cont).repaint
}
else{
l3.setText("Your are not authorised to access");
t1.requestFocus();
t2.setText("");
t2.setText("");
password = "";
}
}
catch (SQLException sqlex)
{
System.err.println(sqlex.g
success = false;
} }
}
class MainPanel extends JPanel
{
// members
private JButton b2;
// constructors:
public MainPanel()
{
} // constructor MainPanel
} // Class MainPanel
public void databaseConnect()
{
String databaseName = null;
try{
Class.forName("sun.jdbc.od
System.out.println("Found the drivers");
}
catch (ClassNotFoundException cnfe){
System.err.println(cnfe.ge
databaseConnect = false;
return;
}
System.out.println("Will try to connect to Database now");
try{
String url ="jdbc:odbc:DRIVER={Micros
con = DriverManager.getConnectio
databaseConnect = true;
System.out.println("Connec
}
catch(SQLException e){
System.err.println(e.getMe
databaseConnect = false;
return;
}
}
public void addMemberSQL(){
try {
Statement st = con.createStatement();
st.executeUpdate("INSERT INTO Members " +"(First Name, Last Name, Town, County, Height, Telephone_no,Age,Gender, Date_Registered,Memberid)"
"VALUES"+" ('"+firstname+"','"+lastna
con.close();
}
catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMe
}
finally{
if(con != null)
{
try{
con.close();
}
catch(Exception ignored) {}
}
}
}
class MemberPanel extends JPanel
{
// members
private JButton b1;
// constructors:
public MemberPanel()
{
// create button
b1 = new JButton("Add Member ");
// add button as an event listener
b1.addActionListener(new MemberAddScreen(getContent
// add buttons to current panel
add(b1);
setVisible(true);
} // constructor MainPanel
} // Class MainPanel
class AddMemberPanel extends JPanel
{
// members
private JLabel l1,addmemberlabel2,addmemb
private JTextField ddmembertfield1,addmembert
// constructors:
public AddMemberPanel()
{
GridBagConstraints c = new GridBagConstraints();
setLayout(new GridBagLayout());
// create button
l1 = new JLabel("Firstname ");
addmemberlabel2 = new JLabel("Lastname");
addmemberlabel3 = new JLabel("Address");
addmemberlabel4 = new JLabel("Town");
addmemberlabel5 = new JLabel("County");
addmemberlabel6 = new JLabel("Height");
addmemberlabel7 = new JLabel("Phone no");
addmemberlabel8 = new JLabel("Age ");
addmemberlabel9 = new JLabel("Gender");
addmemberlabel10 = new JLabel("Date Registered");
JTextField addmembertfield1 = new JTextField(15);
JTextField addmembertfield2 = new JTextField(15);
JTextField addmembertfield3 = new JTextField(15);
JTextField addmembertfield4 = new JTextField(15);
JTextField addmembertfield5 = new JTextField(15);
JTextField addmembertfield6 = new JTextField(15);
JTextField addmembertfield7 = new JTextField(15);
JTextField addmembertfield8 = new JTextField(15);
JTextField addmembertfield9 = new JTextField(15);
JTextField addmembertfield10 = new JTextField(11);
// add buttons to current panel
/* c.gridx = 0;
c.gridy = 10;
c.gridwidth = 15;
c.gridheight = 5;
add(l1,c);
add(addmembertfield1);
c.gridx = 0;
c.gridy = 20;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel2,c);
add(addmembertfield2);
c.gridx = 0;
c.gridy = 30;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel3,c);
add(addmembertfield3);
c.gridx = 0;
c.gridy = 40;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel4,c);
add(addmembertfield4);
c.gridx = 0;
c.gridy = 50;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel5,c);
add(addmembertfield5);
c.gridx = 0;
c.gridy = 60;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel6,c);
add(addmembertfield6);
c.gridx = 0;
c.gridy = 70;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel7,c);
add(addmembertfield7);
c.gridx = 0;
c.gridy = 80;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel8);
add(addmembertfield8);
c.gridx = 0;
c.gridy = 90;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel9,c);
add(addmembertfield9);
c.gridx = 0;
c.gridy = 100;
c.gridwidth = 15;
c.gridheight = 5;
add(addmemberlabel10,c);
add(addmembertfield10); */
} // constructor MainPanel
} // Class MainPanel
public static void main(String[] args) {
JFrame frame1 = new Test();
frame1.show();
} ;
} // class close
**************************
class MemberaddDetails implements ActionListener
{
String firstname;
String lastname;
String address;
String town;
String county;
String Height;
String phone;
String age;
String gender;
String datereg;
String memberid;
Container cont; // content pane is passed to listener
public MemberaddDetails(Container
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven
{
Container cont;
firstname = addmembertfield1.getText()
System.out.println(firstna
lastname = addmembertfield2.getText()
address = addmembertfield3.getText()
town = addmembertfield4.getText()
county = addmembertfield5.getText()
height = addmembertfield6.getText()
phone = addmembertfield7.getText()
age = addmembertfield8.getText()
gender = addmembertfield9.getText()
datereg = addmembertfield10.getText(
memberid = addmembertfield11.getText(
addMemberSQL();
}
}
**************************
public void addMemberSQL(){
try {
Statement st = con.createStatement();
st.executeUpdate("INSERT INTO Members " +"(First Name, Last Name, Town, County, Height, Telephone_no,Age,Gender, Date_Registered,Memberid)"
"VALUES"+" ('"+firstname+"','"+lastna
con.close();
}
catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMe
}
finally{
if(con != null)
{
try{
con.close();
}
catch(Exception ignored) {}
}
}
}
You're hiding the true reference to the Container you need with a local reference to Container
Its better to tell us which line threw that exception. That's a long code.
>> Container cont;
- in the actionPerfomed () method. Why have you declared it?
- in the actionPerfomed () method. Why have you declared it?
Yes - please tell us the line that the NPE is occurring on (which you will be informed of by the stack trace)
By the way, why do you have the same name for a method and a boolean data-member?
Also, your code gives me several compilation errors w.r.t {, }, etc. Hope you have it all in the correct order in your code since you say that it compiles fine. But what is WindowsUtilities? Is it a third party class that you are using?
Please post the code you're actually using. If you're getting NPEs and the code here won't compile, it can't be the same code
ASKER
I think the NPE is occurring on 205
Windows Utilities is a third party class, its in the same folder as this code on my pc.
Comment it out if you want as it only for "look"
let me know if you require more info
Thanks!!!
Windows Utilities is a third party class, its in the same folder as this code on my pc.
Comment it out if you want as it only for "look"
let me know if you require more info
Thanks!!!
>>I think the NPE is occurring on 205
It's no good giving us line numbers! Please tell us the line in the code you posted
It's no good giving us line numbers! Please tell us the line in the code you posted
Well, it'd be better if you could also tell us which line in the code is line no. 205, because directly copy-pasting your code gives errors and we will have to change it slightly to get it working (like the line containing ********** before class MemberaddDetails). Depending upon whether we remove or comment those lines, the line numbers will vary.
ASKER
firstname = addmembertfield1.getText() ;
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Make sure that 'firstname' is not null before using it
By the way, are those JTextField members needed in all the classes where you have declared them?
>> Make sure that 'firstname' is not null before using it
But why? If firstname is null, even then: >> firstname = addmembertfield1.getText() ;
- would assign the value from the text-field to it. It would throw an NPE if addmembertfield1 is null.
Try to test it:
System.out.println ( addmembertfield1 ) ;
firstname = addmembertfield1.getText () ;
But why? If firstname is null, even then: >> firstname = addmembertfield1.getText()
- would assign the value from the text-field to it. It would throw an NPE if addmembertfield1 is null.
Try to test it:
System.out.println ( addmembertfield1 ) ;
firstname = addmembertfield1.getText () ;
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
>>But why?
Because this sort of thing *will* throw an NPE
" VALUES(" + firstname +
etc.
Because this sort of thing *will* throw an NPE
" VALUES(" + firstname +
etc.
But CEHJ, that isn't the line which is throwing the NPE. Like mcowman said, its: firstname = addmembertfield1.getText() ;
Also:
>> " VALUES(" + firstname +
- would append "null" to it, like:
VALUES (null, ....
rather than throwing a NullPointer.
Anyway, mcowman, can we have any feedback?
Also:
>> " VALUES(" + firstname +
- would append "null" to it, like:
VALUES (null, ....
rather than throwing a NullPointer.
Anyway, mcowman, can we have any feedback?
ASKER
No more exception!!! Thanks, but it still doesnt take the text from the field and enter in the
database, Am I missing something?? Please bear with me as I'm learning as I code!!!!
Thanks!!
database, Am I missing something?? Please bear with me as I'm learning as I code!!!!
Thanks!!
>>But CEHJ, that isn't the line which is throwing the NPE
Yes but i don't think that really IS the place necessarily - but i could be wrong ;-)
>>- would append "null" to it, like:
Yes - you're right, but what i was getting at is something might be happening after that line
Yes but i don't think that really IS the place necessarily - but i could be wrong ;-)
>>- would append "null" to it, like:
Yes - you're right, but what i was getting at is something might be happening after that line
>>No more exception!!!
As a result of what alteration?
As a result of what alteration?
ASKER
CEHJ,
I made the change based on your comments
if (firstname != null){
String firstname = addmembertfield1.getText() ;
System.out.println(firstna me);
}
else {
System.out.println("not working");
Is this correct??
Now when I click the button it just gives not working
Thanks!!
I made the change based on your comments
if (firstname != null){
String firstname = addmembertfield1.getText()
System.out.println(firstna
}
else {
System.out.println("not working");
Is this correct??
Now when I click the button it just gives not working
Thanks!!
Well that's not actually doing much - firstname is bound to start off null.
Turn the test round and see what happens:
if (firstname == null) //etc
Turn the test round and see what happens:
if (firstname == null) //etc
ASKER
I updated the code with the following
if (firstname == null){
String firstname = addmembertfield1.getText() ;
System.out.println(firstna me);
}
else {
System.out.println("not working");
}
and the NPE has returned. This time at line 206
String firstname = addmembertfield1.getText() ;
if (firstname == null){
String firstname = addmembertfield1.getText()
System.out.println(firstna
}
else {
System.out.println("not working");
}
and the NPE has returned. This time at line 206
String firstname = addmembertfield1.getText()
I'm beginning to lose concentration a bit now mcowman (should be doing other things!)
so you might be better off with mayankeagle. I would go through the references to addmembertfield1
as he suggested earlier. I can see that in at least one place you have hidden the instance variable of that name
with a locally declared one. That means if it's initialized in the latter place, when you access the former later, it will
be null. That's probably what's happening. It looks like you're even doing the second (local) thing more than once in some cases!
so you might be better off with mayankeagle. I would go through the references to addmembertfield1
as he suggested earlier. I can see that in at least one place you have hidden the instance variable of that name
with a locally declared one. That means if it's initialized in the latter place, when you access the former later, it will
be null. That's probably what's happening. It looks like you're even doing the second (local) thing more than once in some cases!
ASKER
mayankeagle,
My train of thought is a little confused, where do you believe the problem lies??
Thank you
My train of thought is a little confused, where do you believe the problem lies??
Thank you
ASKER
Can anyone help???
Just do what i mentioned in my last post first.
Sorry for being out of touch for a while ;-)
Do what has been suggested. I already asked you so whether you need local addmembertfield1, 2, 3.... etc - you can remove them. Have you followed what I asked you to do?
>> JTextField addmembertfield1 = new ....
>> to: addmemberrtfield1 = new .... (the JTextField declaration is removed)
Will return tomorrow.
Do what has been suggested. I already asked you so whether you need local addmembertfield1, 2, 3.... etc - you can remove them. Have you followed what I asked you to do?
>> JTextField addmembertfield1 = new ....
>> to: addmemberrtfield1 = new .... (the JTextField declaration is removed)
Will return tomorrow.
ASKER
I've trimmed the program down as mentioned and I'm still getting the same error
Should I declare firstname as null globally? Below is the code
Is this what you mean???
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
import java.net.*;
class Test extends JFrame{ //class open
//Step 2:: Global definitions of Panels
JPanel z1;
JPanel m1;
JPanel a1;
Container cont;
// Global defintion of text fields/buttons/strings etc..
private JButton b1,b2,b3,b4,b5;
private JLabel l1,l2,l3,addmemberlabel2,a ddmemberla bel3,addme mberlabel4 ,addmember label5,add memberlabe l6,addmemb erlabel7,a ddmemberla bel8,addme mberlabel9 ,addmember label10,ad dmemberlab el11;
private JTextField t1,t2,addmembertfield1,add membertfie ld2,addmem bertfield3 ,addmember tfield4,ad dmembertfi eld5,addme mbertfield 6,addmembe rtfield7,a ddmembertf ield8,addm embertfiel d9,addmemb ertfield10 ,addmember tfield11;
private String username,password,password Cpr,firstn ame,lastna me,address ,town,coun ty,height, phone,age, gender,dat ereg,membe rid;
//needed to connect to database
boolean databaseConnect= false;
private java.sql.Connection con=null;
// Constructor
public Test()
{ // constructor open
// set title of frame
setTitle("Technofit");
// Set Size of Frame (default is 0,0)
setSize(200,350);
//set location of Frame (default is 0,0 - top left corner)
setLocation(10,100);
// Calls another java program stored in same folder and applies it to this program
WindowUtilities.setNativeL ookAndFeel ();
// calls the databaseConnect function/method
databaseConnect();
//Step 3:: initialise panels
m1 = new JPanel();
a1 = new JPanel();
z1 = new JPanel();
//create button
b2 = new JButton("Login");
//create labels
l2 = new JLabel("Username");
l3 = new JLabel("Password");
// create texfields
t1 = new JTextField(15);
t2 = new JTextField(15);
//add button as Listener
b2.addActionListener(new MemberScreen(getContentPan e()));
//add button/texfields/labels to panel
z1.add(l2);
z1.add(t1);
z1.add(l3);
z1.add(t2);
z1.add(b2);
// create button
b1 = new JButton("Add Member ");
// add button as an event listener
b1.addActionListener(new MemberAddScreen(getContent Pane()));
// add buttons to current panel
m1.add(b1);
// create button
b4 = new JButton("OK ");
b5 = new JButton("Logout");
// add button as an event listener
b4.addActionListener(new MemberaddDetails());
b5.addActionListener(new Logout());
// create labels/textfields
l1 = new JLabel("Firstname ");
addmemberlabel2 = new JLabel("Lastname");
addmemberlabel3 = new JLabel("Address1 ");
addmemberlabel4 = new JLabel("Town ");
addmemberlabel5 = new JLabel("County ");
addmemberlabel6 = new JLabel("Height ");
addmemberlabel7 = new JLabel("phone no ");
addmemberlabel8 = new JLabel("Age ");
addmemberlabel9 = new JLabel("Gender");
addmemberlabel10= new JLabel("Date Registered");
addmemberlabel11 = new JLabel("Member ID");
JTextField addmembertfield1 = new JTextField(15);
JTextField addmembertfield2 = new JTextField(15);
JTextField addmembertfield3 = new JTextField(15);
JTextField addmembertfield4 = new JTextField(15);
JTextField addmembertfield5 = new JTextField(15);
JTextField addmembertfield6 = new JTextField(15);
JTextField addmembertfield7 = new JTextField(15);
JTextField addmembertfield8 = new JTextField(15);
JTextField addmembertfield9 = new JTextField(15);
JTextField addmembertfield10 = new JTextField(6);
JTextField addmembertfield11 = new JTextField(15);
//add buttons,texfields to panel a1
a1.add(l1);
a1.add(addmembertfield1);
a1.add(addmemberlabel2);
a1.add(addmembertfield2);
a1.add(addmemberlabel3);
a1.add(addmembertfield3);
a1.add(addmemberlabel4);
a1.add(addmembertfield4);
a1.add(addmemberlabel5);
a1.add(addmembertfield5);
a1.add(addmemberlabel6);
a1.add(addmembertfield6);
a1.add(addmemberlabel7);
a1.add(addmembertfield7);
a1.add(addmemberlabel8);
a1.add(addmembertfield8);
a1.add(addmemberlabel9);
a1.add(addmembertfield9);
a1.add(addmemberlabel10);
a1.add(addmembertfield10);
a1.add(addmembertfield11);
a1.add(b4);
a1.add(b5);
// Add Panels
Container contentPane = getContentPane();
//Step 3:: Add Panels to frame
contentPane.add(z1);
// Window Listener
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose(); //terminates/frees up system resource
System.exit(0);
} //windowClosing
} ); //windowAdapter
} // constructor close
class Logout implements ActionListener
{
public void actionPerformed(ActionEven t e)
{
System.out.println("Test") ;
}
}
class MemberaddDetails implements ActionListener
{
//String firstname ;
//String lastname;
//String address;
//String town;
//String county;
//String Height;
//String phone;
//String age;
//String gender;
//String datereg;
//String memberid;
//Container cont;
public MemberaddDetails() {
}
public void actionPerformed(ActionEven t e)
{
if (firstname == null){
String firstname = addmembertfield1.getText() ;
System.out.println(firstna me);
}
else {
System.out.println("not working");
}
// lastname = addmembertfield2.getText() ;
// address = addmembertfield3.getText() ;
// town = addmembertfield4.getText() ;
// county = addmembertfield5.getText() ;
// height = addmembertfield6.getText() ;
// phone = addmembertfield7.getText() ;
// age = addmembertfield8.getText() ;
// gender = addmembertfield9.getText() ;
// datereg = addmembertfield10.getText( );
// memberid = addmembertfield11.getText( );
// addMemberSQL();
}
}
//listener class
class LogoutReceptionist implements ActionListener
{
public void actionPerformed(ActionEven t e)
{
System.exit(0);
} //windowClosing
} //windowAdapter
//listener class
class MemberAddScreen implements ActionListener
{
Container cont; // content pane is passed to listener
public MemberAddScreen(Container c) {
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven t e)
{ // open action performed.
// remove all panels from frame
cont.removeAll();
// add panel a1
cont.add(a1);
// refreshes the screen
((JComponent)cont).revalid ate();
((JComponent)cont).repaint ();
} //close action performed
} //close class memberadd screen
class MemberScreen implements ActionListener
{
String username;
String password;
String passwordCpr;
Container cont; // content pane is passed to listener
public MemberScreen(Container c) {
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven t e)
{
Container cont;
username = t1.getText();
password = t2.getText();
executeSQL();
}
public void executeSQL() {
ResultSet rset = null;
int colCount = -1;
boolean success = false;
try
{
Statement s = con.createStatement();
String sqlStr = "SELECT password FROM Password WHERE username='"+username+"';";
rset = s.executeQuery(sqlStr);
rset.next();
passwordCpr = rset.getString(1);
if(password.compareTo(pass wordCpr)== 0)
{
cont.removeAll();
cont.add(m1);
((JComponent)cont).revalid ate();
((JComponent)cont).repaint ();
}
else{
l3.setText("Your are not authorised to access");
t1.requestFocus();
t2.setText("");
t2.setText("");
password = "";
}
}
catch (SQLException sqlex)
{
System.err.println(sqlex.g etMessage( ));
success = false;
} }
}
class MainPanel extends JPanel
{
// members
private JButton b2;
// constructors:
public MainPanel()
{
} // constructor MainPanel
} // Class MainPanel
public void databaseConnect()
{
String databaseName = null;
try{
Class.forName("sun.jdbc.od bc.JdbcOdb cDriver");
System.out.println("Found the drivers");
}
catch (ClassNotFoundException cnfe){
System.err.println(cnfe.ge tMessage() );
databaseConnect = false;
return;
}
System.out.println("Will try to connect to Database now");
try{
String url ="jdbc:odbc:DRIVER={Micros oft Access Driver (*.mdb)};DBQ=F:\\pro\\db1. mdb";
con = DriverManager.getConnectio n(url, "", "");
databaseConnect = true;
System.out.println("Connec ted to Database");
}
catch(SQLException e){
System.err.println(e.getMe ssage());
databaseConnect = false;
return;
}
}
public void addMemberSQL(){
try {
Statement st = con.createStatement();
st.executeUpdate("INSERT INTO Members " +"(First Name, Last Name, Town, County, Height, Telephone_no,Age,Gender, Date_Registered,Memberid)" +
"VALUES"+" ('"+firstname+"','"+lastna me+"','"+a ddress+"', '"+town+"' ,'"+county +"','"+hei ght+"','"+ phone+"',' "+age+"',' "+gender+" ','"+dater eg+"')");
con.close();
}
catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMe ssage());
}
finally{
if(con != null)
{
try{
con.close();
}
catch(Exception ignored) {}
}
}
}
public static void main(String[] args) {
JFrame frame1 = new Test();
frame1.show();
} ;
} // class close
Should I declare firstname as null globally? Below is the code
Is this what you mean???
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
import java.net.*;
class Test extends JFrame{ //class open
//Step 2:: Global definitions of Panels
JPanel z1;
JPanel m1;
JPanel a1;
Container cont;
// Global defintion of text fields/buttons/strings etc..
private JButton b1,b2,b3,b4,b5;
private JLabel l1,l2,l3,addmemberlabel2,a
private JTextField t1,t2,addmembertfield1,add
private String username,password,password
//needed to connect to database
boolean databaseConnect= false;
private java.sql.Connection con=null;
// Constructor
public Test()
{ // constructor open
// set title of frame
setTitle("Technofit");
// Set Size of Frame (default is 0,0)
setSize(200,350);
//set location of Frame (default is 0,0 - top left corner)
setLocation(10,100);
// Calls another java program stored in same folder and applies it to this program
WindowUtilities.setNativeL
// calls the databaseConnect function/method
databaseConnect();
//Step 3:: initialise panels
m1 = new JPanel();
a1 = new JPanel();
z1 = new JPanel();
//create button
b2 = new JButton("Login");
//create labels
l2 = new JLabel("Username");
l3 = new JLabel("Password");
// create texfields
t1 = new JTextField(15);
t2 = new JTextField(15);
//add button as Listener
b2.addActionListener(new MemberScreen(getContentPan
//add button/texfields/labels to panel
z1.add(l2);
z1.add(t1);
z1.add(l3);
z1.add(t2);
z1.add(b2);
// create button
b1 = new JButton("Add Member ");
// add button as an event listener
b1.addActionListener(new MemberAddScreen(getContent
// add buttons to current panel
m1.add(b1);
// create button
b4 = new JButton("OK ");
b5 = new JButton("Logout");
// add button as an event listener
b4.addActionListener(new MemberaddDetails());
b5.addActionListener(new Logout());
// create labels/textfields
l1 = new JLabel("Firstname ");
addmemberlabel2 = new JLabel("Lastname");
addmemberlabel3 = new JLabel("Address1 ");
addmemberlabel4 = new JLabel("Town ");
addmemberlabel5 = new JLabel("County ");
addmemberlabel6 = new JLabel("Height ");
addmemberlabel7 = new JLabel("phone no ");
addmemberlabel8 = new JLabel("Age ");
addmemberlabel9 = new JLabel("Gender");
addmemberlabel10= new JLabel("Date Registered");
addmemberlabel11 = new JLabel("Member ID");
JTextField addmembertfield1 = new JTextField(15);
JTextField addmembertfield2 = new JTextField(15);
JTextField addmembertfield3 = new JTextField(15);
JTextField addmembertfield4 = new JTextField(15);
JTextField addmembertfield5 = new JTextField(15);
JTextField addmembertfield6 = new JTextField(15);
JTextField addmembertfield7 = new JTextField(15);
JTextField addmembertfield8 = new JTextField(15);
JTextField addmembertfield9 = new JTextField(15);
JTextField addmembertfield10 = new JTextField(6);
JTextField addmembertfield11 = new JTextField(15);
//add buttons,texfields to panel a1
a1.add(l1);
a1.add(addmembertfield1);
a1.add(addmemberlabel2);
a1.add(addmembertfield2);
a1.add(addmemberlabel3);
a1.add(addmembertfield3);
a1.add(addmemberlabel4);
a1.add(addmembertfield4);
a1.add(addmemberlabel5);
a1.add(addmembertfield5);
a1.add(addmemberlabel6);
a1.add(addmembertfield6);
a1.add(addmemberlabel7);
a1.add(addmembertfield7);
a1.add(addmemberlabel8);
a1.add(addmembertfield8);
a1.add(addmemberlabel9);
a1.add(addmembertfield9);
a1.add(addmemberlabel10);
a1.add(addmembertfield10);
a1.add(addmembertfield11);
a1.add(b4);
a1.add(b5);
// Add Panels
Container contentPane = getContentPane();
//Step 3:: Add Panels to frame
contentPane.add(z1);
// Window Listener
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose(); //terminates/frees up system resource
System.exit(0);
} //windowClosing
} ); //windowAdapter
} // constructor close
class Logout implements ActionListener
{
public void actionPerformed(ActionEven
{
System.out.println("Test")
}
}
class MemberaddDetails implements ActionListener
{
//String firstname ;
//String lastname;
//String address;
//String town;
//String county;
//String Height;
//String phone;
//String age;
//String gender;
//String datereg;
//String memberid;
//Container cont;
public MemberaddDetails() {
}
public void actionPerformed(ActionEven
{
if (firstname == null){
String firstname = addmembertfield1.getText()
System.out.println(firstna
}
else {
System.out.println("not working");
}
// lastname = addmembertfield2.getText()
// address = addmembertfield3.getText()
// town = addmembertfield4.getText()
// county = addmembertfield5.getText()
// height = addmembertfield6.getText()
// phone = addmembertfield7.getText()
// age = addmembertfield8.getText()
// gender = addmembertfield9.getText()
// datereg = addmembertfield10.getText(
// memberid = addmembertfield11.getText(
// addMemberSQL();
}
}
//listener class
class LogoutReceptionist implements ActionListener
{
public void actionPerformed(ActionEven
{
System.exit(0);
} //windowClosing
} //windowAdapter
//listener class
class MemberAddScreen implements ActionListener
{
Container cont; // content pane is passed to listener
public MemberAddScreen(Container c) {
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven
{ // open action performed.
// remove all panels from frame
cont.removeAll();
// add panel a1
cont.add(a1);
// refreshes the screen
((JComponent)cont).revalid
((JComponent)cont).repaint
} //close action performed
} //close class memberadd screen
class MemberScreen implements ActionListener
{
String username;
String password;
String passwordCpr;
Container cont; // content pane is passed to listener
public MemberScreen(Container c) {
cont = c; // content pane then kept as a variable
}
public void actionPerformed(ActionEven
{
Container cont;
username = t1.getText();
password = t2.getText();
executeSQL();
}
public void executeSQL() {
ResultSet rset = null;
int colCount = -1;
boolean success = false;
try
{
Statement s = con.createStatement();
String sqlStr = "SELECT password FROM Password WHERE username='"+username+"';";
rset = s.executeQuery(sqlStr);
rset.next();
passwordCpr = rset.getString(1);
if(password.compareTo(pass
{
cont.removeAll();
cont.add(m1);
((JComponent)cont).revalid
((JComponent)cont).repaint
}
else{
l3.setText("Your are not authorised to access");
t1.requestFocus();
t2.setText("");
t2.setText("");
password = "";
}
}
catch (SQLException sqlex)
{
System.err.println(sqlex.g
success = false;
} }
}
class MainPanel extends JPanel
{
// members
private JButton b2;
// constructors:
public MainPanel()
{
} // constructor MainPanel
} // Class MainPanel
public void databaseConnect()
{
String databaseName = null;
try{
Class.forName("sun.jdbc.od
System.out.println("Found the drivers");
}
catch (ClassNotFoundException cnfe){
System.err.println(cnfe.ge
databaseConnect = false;
return;
}
System.out.println("Will try to connect to Database now");
try{
String url ="jdbc:odbc:DRIVER={Micros
con = DriverManager.getConnectio
databaseConnect = true;
System.out.println("Connec
}
catch(SQLException e){
System.err.println(e.getMe
databaseConnect = false;
return;
}
}
public void addMemberSQL(){
try {
Statement st = con.createStatement();
st.executeUpdate("INSERT INTO Members " +"(First Name, Last Name, Town, County, Height, Telephone_no,Age,Gender, Date_Registered,Memberid)"
"VALUES"+" ('"+firstname+"','"+lastna
con.close();
}
catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMe
}
finally{
if(con != null)
{
try{
con.close();
}
catch(Exception ignored) {}
}
}
}
public static void main(String[] args) {
JFrame frame1 = new Test();
frame1.show();
} ;
} // class close
I don't think you understand what's required, you keep hiding your instance variable:
JTextField addmembertfield1 = new JTextField(15);
You now have two references to that variable as it's been declared earlier. That should be
addmembertfield1 = new JTextField(15);
JTextField addmembertfield1 = new JTextField(15);
You now have two references to that variable as it's been declared earlier. That should be
addmembertfield1 = new JTextField(15);
ASKER
Do you mean change to the below(2) references because I have the following(1)?? When I do this it doesnt compile it gives me four NPE
errors!! Sorry to be so slow on the uptake about this by the way Thanks- m
(1)
private JTextField t1,t2,addmembertfield1,add membertfie ld2,addmem bertfield3 ,addmember tfield4,ad dmembertfi eld5,addme mbertfield 6,addmembe rtfield7,a ddmembertf ield8,addm embertfiel d9,addmemb ertfield10 ,addmember tfield11; etc
(2)
addmemberlabel2 = new JLabel("Lastname");
addmemberlabel3 = new JLabel("Address1 ");
addmemberlabel4 = new JLabel("Town ");
addmemberlabel5 = new JLabel("County ");
addmemberlabel6 = new JLabel("Height ");
addmemberlabel7 = new JLabel("phone no ");
addmemberlabel8 = new JLabel("Age ");
addmemberlabel9 = new JLabel("Gender");
addmemberlabel10= new JLabel("Date Registered");
addmemberlabel11 = new JLabel("Member ID");
addmembertfield1 = new JTextField(15);
addmembertfield1 = new JTextField(15);
addmembertfield2 = new JTextField(15);
addmembertfield3 = new JTextField(15);
addmembertfield4 = new JTextField(15);
addmembertfield5 = new JTextField(15);
addmembertfield6 = new JTextField(15);
addmembertfield7 = new JTextField(15);
addmembertfield8 = new JTextField(15);
addmembertfield9 = new JTextField(15);
addmembertfield10 = new JTextField(15);
errors!! Sorry to be so slow on the uptake about this by the way Thanks- m
(1)
private JTextField t1,t2,addmembertfield1,add
(2)
addmemberlabel2 = new JLabel("Lastname");
addmemberlabel3 = new JLabel("Address1 ");
addmemberlabel4 = new JLabel("Town ");
addmemberlabel5 = new JLabel("County ");
addmemberlabel6 = new JLabel("Height ");
addmemberlabel7 = new JLabel("phone no ");
addmemberlabel8 = new JLabel("Age ");
addmemberlabel9 = new JLabel("Gender");
addmemberlabel10= new JLabel("Date Registered");
addmemberlabel11 = new JLabel("Member ID");
addmembertfield1 = new JTextField(15);
addmembertfield1 = new JTextField(15);
addmembertfield2 = new JTextField(15);
addmembertfield3 = new JTextField(15);
addmembertfield4 = new JTextField(15);
addmembertfield5 = new JTextField(15);
addmembertfield6 = new JTextField(15);
addmembertfield7 = new JTextField(15);
addmembertfield8 = new JTextField(15);
addmembertfield9 = new JTextField(15);
addmembertfield10 = new JTextField(15);
ASKER
Correction - Sorry it does complie, it doesnt run Thks !!
>>When I do this it doesnt compile it gives me four NPE
errors!!
That's a contradiction in terms - you can only get an NPE from running a program and you can't run it if it won't compile
The only change you should have made is to change
>>JTextField addmembertfield1 = new JTextField(15);
to
addmembertfield1 = new JTextField(15);
errors!!
That's a contradiction in terms - you can only get an NPE from running a program and you can't run it if it won't compile
The only change you should have made is to change
>>JTextField addmembertfield1 = new JTextField(15);
to
addmembertfield1 = new JTextField(15);
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
hello: change this:
JTextField addmembertfield1 = new JTextField(15);
JTextField addmembertfield2 = new JTextField(15);
JTextField addmembertfield3 = new JTextField(15);
JTextField addmembertfield4 = new JTextField(15);
JTextField addmembertfield5 = new JTextField(15);
JTextField addmembertfield6 = new JTextField(15);
JTextField addmembertfield7 = new JTextField(15);
JTextField addmembertfield8 = new JTextField(15);
JTextField addmembertfield9 = new JTextField(15);
JTextField addmembertfield10 = new JTextField(6);
JTextField addmembertfield11 = new JTextField(15);
TO this:
addmembertfield1 = new JTextField(15);
addmembertfield2 = new JTextField(15);
addmembertfield3 = new JTextField(15);
addmembertfield4 = new JTextField(15);
addmembertfield5 = new JTextField(15);
addmembertfield6 = new JTextField(15);
addmembertfield7 = new JTextField(15);
addmembertfield8 = new JTextField(15);
addmembertfield9 = new JTextField(15);
addmembertfield10 = new JTextField(6);
addmembertfield11 = new JTextField(15);
That should work for you!!!
JTextField addmembertfield1 = new JTextField(15);
JTextField addmembertfield2 = new JTextField(15);
JTextField addmembertfield3 = new JTextField(15);
JTextField addmembertfield4 = new JTextField(15);
JTextField addmembertfield5 = new JTextField(15);
JTextField addmembertfield6 = new JTextField(15);
JTextField addmembertfield7 = new JTextField(15);
JTextField addmembertfield8 = new JTextField(15);
JTextField addmembertfield9 = new JTextField(15);
JTextField addmembertfield10 = new JTextField(6);
JTextField addmembertfield11 = new JTextField(15);
TO this:
addmembertfield1 = new JTextField(15);
addmembertfield2 = new JTextField(15);
addmembertfield3 = new JTextField(15);
addmembertfield4 = new JTextField(15);
addmembertfield5 = new JTextField(15);
addmembertfield6 = new JTextField(15);
addmembertfield7 = new JTextField(15);
addmembertfield8 = new JTextField(15);
addmembertfield9 = new JTextField(15);
addmembertfield10 = new JTextField(6);
addmembertfield11 = new JTextField(15);
That should work for you!!!
mcowman, what 91mustang suggested above is exactly what we have been trying to tell you:
>> JTextField addmembertfield1 = new JTextField ( 15 ) ;
to: addmemberrtfield1 = new .... (the JTextField declaration is removed)
- do you understand it now?
>> JTextField addmembertfield1 = new JTextField ( 15 ) ;
to: addmemberrtfield1 = new .... (the JTextField declaration is removed)
- do you understand it now?
ASKER
Aplogies about this, I finally understood and made the change, it now gives an SQL error, Thanks for your
help, I'll take a look at the new error and open a new question if needs be.
Again, sorry for being so slow on the uptake!!!
Thanks!!
help, I'll take a look at the new error and open a new question if needs be.
Again, sorry for being so slow on the uptake!!!
Thanks!!
8-) we'll be there ;-)