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用户输入任何空值或将所有单元格保留为空。想要显示一条消息请输入一些值。在三行中填充所有值后,只允许实现这一点。
答案 0 :(得分:2)
您的table.getValueAt(i, xxxx)
可能会返回null
,因此调用toString()
到null
会引发运行时NullPointerException
。
我建议使用if
语句检查row,column的值是否为null,然后检索它的toString()
值。
只是猜测代码可能会抛出NullPointerException
。
请调试您的应用程序,以查看哪行代码会引发NullPointerException
并相应地修复它。