0

これが私のサンプルコードです

DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
   int colum=jTable1.getSelectedColumn();
   int row=jTable1.getSelectedRow();
   System.out.println("row of selected is "+row+"col is "+colum);
    String remark1 = (String) jTable1.getValueAt(row, 8);
    String remark2 = (String) jTable1.getValueAt(row, 9);
     String stock = (String) jTable1.getValueAt(row, 10);
     String invoiceno =(String) jTable1.getValueAt(row, 11);            
    String id=(String) jTable1.getValueAt(row, 12);
    System.out.println("remark1: "+remark1+" ,remark2: "+remark2+",stock:"+stock+", invoiceno:"+invoiceno+ " ,id: "+id);

編集モードで開いて、jTable1テキストを入力せずに出てきて、アクションを実行すると、このような出力が得られます

remark1:  ,remark2: ,stock: , invoiceno: ,id: 7e3c63ffc9bc42dba8155270741d7c9a

そして、その行をそのフィールドでデータベースに送信すると"、それらのフィールドが取得されます..これが問題を引き起こしています。"編集モードに入り、テキストを編集したりテキストを追加したりせずに終了するときに、データベースに送信しないようにするにはどうすればよいですか

これを追加してみました

line 426: if(invoiceno.equals("")){
         invoiceno=null;
     }

の編集モードにinvoiceno jTable1入って出てくると、引数が渡され、正常にinvoiceno=null動作します。しかし、その行(編集モード)に入ってからデータベースに送信しないと、nullが表示されjava.lang.NullPointerExceptionますline:426

4

1 に答える 1

1

検証を元に戻すことができます。

if ("".equals(invoiceno)) {
  invoiceno = null;
}

NullPointerException代わりにif invoicenois をスローしませんnull

于 2013-10-02T17:55:56.143 に答える