1

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

Nicholas K
  • 15,148
  • 7
  • 31
  • 57
Hasanthi
  • 11
  • 3
  • Which one is line 2068 in `HomeAdmin.java`? – Daniel Aug 29 '18 at 05:05
  • please include classname or filenames for the codes. It is too long and it would be easier to track using stacktrace, but we need to know where is line 2068 – Ranielle Canlas Aug 29 '18 at 05:10
  • its "Type = jCsubCat.getSelectedItem().toString();" in private void jCsubCatItemStateChanged(java.awt.event.ItemEvent evt) { – Hasanthi Aug 29 '18 at 10:36
  • its "Type = jCsubCat.getSelectedItem().toString();" in private void jCsubCatItemStateChanged(java.awt.event.ItemEvent evt) { – Hasanthi Aug 29 '18 at 10:43

0 Answers0