i have add 3 combo box to the form where 2 combo box is changed according to the selection of first combo box. here when a category is selected sub catergory is load to one combo box and sizes are load to next combo box.cord in first combo box selection is shown in below
private void jCcatItemStateChanged(java.awt.event.ItemEvent evt) {
//jlsubtype.removeAll();
System.out.println(jCcat.getSelectedItem().toString());
if (jCcat.getSelectedItem().toString().matches("Uniform")) {
jCsubCat.removeAllItems();
jCsubCat.addItem("Long Sleeve");
jCsubCat.addItem("Short Sleeve");
jCsubCat.addItem("Overcoat");
jCsubCat.addItem("Overoll");
} else if (jCcat.getSelectedItem().toString().matches("Headwear")) {
jCsubCat.removeAllItems();
jCsubCat.addItem("Caps");
jCsubCat.addItem("Scaffs");
} else if (jCcat.getSelectedItem().toString().matches("Footwear")) {
jCsubCat.removeAllItems();
jCsubCat.addItem("Shoes");
jCsubCat.addItem("Slippers");
}
if (jCcat.getSelectedItem().toString().matches("Uniform")) {
jCsSize.removeAllItems();
jCsSize.addItem("XS");
jCsSize.addItem("S");
jCsSize.addItem("M");
jCsSize.addItem("L");
jCsSize.addItem("XL");
jCsSize.addItem("XXL");
jCsSize.addItem("XXXL");
} else if (jCcat.getSelectedItem().toString().matches("Headwear")) {
jCsSize.removeAllItems();
jCsSize.addItem("Free Size");
} else if (jCcat.getSelectedItem().toString().matches("Footwear")) {
jCsSize.removeAllItems();
jCsSize.addItem("35");
jCsSize.addItem("36");
jCsSize.addItem("37");
jCsSize.addItem("38");
jCsSize.addItem("39");
jCsSize.addItem("40");
jCsSize.addItem("4");
jCsSize.addItem("5");
jCsSize.addItem("6");
jCsSize.addItem("7");
jCsSize.addItem("8");
jCsSize.addItem("9");
}
}
*Then once the second combo box is changed the type under it load in listbox.that code is shown in below
private void jCsubCatItemStateChanged(java.awt.event.ItemEvent evt) {
if (jCcat.getSelectedItem().toString().matches("Uniform")) {
DefaultListModel lists = new DefaultListModel();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Connection con = DriverManager.getConnection("jdbc:sqlserver://10.228.59.2:1433;databaseName=uniforminventorydb;user=SA;password=KreedaIntimo@2017;");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/uniforminventorydb", "root", "");
Statement st = con.createStatement();
PreparedStatement pst;
String Catagory;
String Type;
Catagory = jCcat.getSelectedItem().toString();
Type = jCsubCat.getSelectedItem().toString();
String sql = "Select Distinct SubType from add_stock Where Catergory = '" + Catagory + "' and Type = '" + Type + "'";
pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1));
String ls = rs.getString(1);
lists.addElement(ls);
jLsType.setModel(lists);
}
} catch (Exception e) {
e.printStackTrace();
}
} else if (jCcat.getSelectedItem().toString().matches("Footwear")) {
DefaultListModel lists = new DefaultListModel();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Connection con = DriverManager.getConnection("jdbc:sqlserver://10.228.59.2:1433;databaseName=uniforminventorydb;user=SA;password=KreedaIntimo@2017;");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/uniforminventorydb", "root", "");
Statement st = con.createStatement();
PreparedStatement pst;
String Catagory;
String Type;
//Catagory = jCcat.getSelectedItem().toString();
Catagory = "Footwear";
Type = jCsubCat.getSelectedItem().toString();
String sql = "Select Distinct SubType from add_stock Where Catergory = '" + Catagory + "' and Type = '" + Type + "'";
pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1));
String ls = rs.getString(1);
lists.addElement(ls);
jLsType.setModel(lists);
}
} catch (Exception e) {
e.printStackTrace();
}
} else if (jCcat.getSelectedItem().toString().matches("Headwear")) {
DefaultListModel lists = new DefaultListModel();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Connection con = DriverManager.getConnection("jdbc:sqlserver://10.228.59.2:1433;databaseName=uniforminventorydb;user=SA;password=KreedaIntimo@2017;");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/uniforminventorydb", "root", "");
Statement st = con.createStatement();
PreparedStatement pst;
String Catagory;
String Type;
// Catagory = jCcat.getSelectedItem().toString();
Catagory = "Headwear";
//Type = jCsubCat.getSelectedItem().toString();
String sql = "Select Distinct SubType from add_stock Where Catergory = '" + Catagory + "'";
pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1));
String ls = rs.getString(1);
lists.addElement(ls);
jLsType.setModel(lists);
}
} catch (Exception e) {
e.printStackTrace();
}
}
when this code is run once the catergory is changed to footwear the following error comes
java.lang.NullPointerException
at uniforminventorysystem.HomeAdmin.jCsubCatItemStateChanged(HomeAdmin.java:2068)
at uniforminventorysystem.HomeAdmin.access$600(HomeAdmin.java:47)
ps.i haveloaded items for first combo box with a method which add to the main and its cord is given below
//Select Catergory Method
private void catergorySelect(){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Connection con = DriverManager.getConnection("jdbc:sqlserver://10.228.59.2:1433;databaseName=uniforminventorydb;user=SA;password=KreedaIntimo@2017;");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/uniforminventorydb", "root", "");
String sql = "select * from catergoryLoad";
pst = con.prepareStatement(sql);
ResultSet r = pst.executeQuery();
while (r.next()) {
jCcat.addItem(r.getString("Catergory"));
jCrcat3.addItem(r.getString("Catergory"));
jCocat.addItem(r.getString("Catergory"));
}
con.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Failed to Connect to Database", "Error Connection", JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
}
please give me a solution for this matter