如果我没有在我的表中输入任何值或将任何行留空,则获取NullPointerException

时间:2015-01-13 14:01:35

标签: java swing nullpointerexception jtable defaulttablemodel

 String[] header = {"Name", "Age", "Place", "Date of Birth","Qualification"};
        table_model = new DefaultTableModel(header, 3);
        table = new JTable(table_model);
        JScrollPane sp = new JScrollPane(table);
        table.setPreferredScrollableViewportSize(table.getPreferredSize());
        table.setFillsViewportHeight(true); 

        JButton submit = new JButton("Submit");
        jp1.add(new JScrollPane(table));
        jp1.add(submit, BorderLayout.WEST);

        submit.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {    
                try {

                    TableCellEditor editor=table.getCellEditor();
                    editor.stopCellEditing();

                    Connection con = DriverManager.getConnection(host, uName, uPass);
                    stmt = con.createStatement(); 

                    for(int i=0;i<table.getRowCount();i++){

                      String name = table.getValueAt(i,0).toString();
                      int age = Integer.parseInt(table.getValueAt(i,1).toString()); 
                      String place=table.getValueAt(i,2).toString();   
                      String dob=table.getValueAt(i,3).toString();
                      String qualification=table.getValueAt(i,4).toString();    
                      stmt.execute("insert into PERSONAL(NAME,AGE,PLACE,DOB,QUALIFCATION)values('"+name+"',"+age+",'"+place+"',"+dob+",'"+qualification+"')");  
                    }   
                }   
                catch (SQLException ex) {   
                    ex.printStackTrace();
                }
            }
        });

我创建了一个包含三行四列的表。如果我输入三行和列中的所有值,它将成功提交。如果在任何行或列中输入任何空值,或者用户将所有行和列留空,则为显示空指针异常。但是如何处理this.if用户输入任何空值或将所有单元格保留为空。想要显示一条消息请输入一些值。在三行中填充所有值后,只允许实现这一点。

1 个答案:

答案 0 :(得分:2)

您的table.getValueAt(i, xxxx)可能会返回null,因此调用toString()null会引发运行时NullPointerException

我建议使用if语句检查row,column的值是否为null,然后检索它的toString()值。

只是猜测代码可能会抛出NullPointerException

请调试您的应用程序,以查看哪行代码会引发NullPointerException并相应地修复它。