2014-10-05 2 views
0
private void Cubic_meter(){ 

     int v1 = Integer.parseInt(lbl_READING_NUMBER.getText()); 
     int a = Integer.parseInt(jLabel_PREVIOUS_READ.getText()); 
     int b = Integer.parseInt(jLabel_PRESENT_READ.getText()); 
     int cm = Math.abs(a-b); 
    try{ 

     if(jLabel_PREVIOUS_READ.getText().equals("")){ 
    } 

     if(jLabel_PRESENT_READ.getText().equals("")){ 
     } 
    else{ 
     String sql = "UPDATE reading set Cubic_meter=? where Reading_Number=?"; 
     ps=conn.prepareStatement(sql); 
     ps.setInt(1, cm); 
     ps.setInt(2, v1); 
     ps.executeUpdate(); 
    } 
    }catch(Exception e){ 

     JOptionPane.showMessageDialog(null, e); 
    } 
} 

Исключение в нити "АВТ-EventQueue-0" java.lang.NumberFormatException: Для входной строки: "" в java.lang.NumberFormatException.forInputString (Num berFormatException.java:65) на java.lang.Integer.parseInt (Integer.java:504) at java.lang.Integer.parseInt (Integer.java:527) at mawasa_water_system.MainForm.Cubic_meter (MainForm. java: 210) at mawasa_water_system.MainForm. PREVIOUS_READING_OKActionPerformed (MainForm.java:3449) at mawasa_water_system.MainForm.access $ 900 (MainForm.j ava: 18) at mawasa_water_system.MainForm $ 13.actionPerformed (Ma inForm.java:830) на javax.swing.AbstractButton.fireActionPerformed (Abs tractButton.java:2018) в javax.swing.AbstractButton $ Handler.actionPerformed (AbstractButton.java:2341) в javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:402) на javax.swing.DefaultButtonModel.setPressed (DefaultB uttonModel.java:259) в javax.swing.plaf.basic.BasicButtonListener.mouseRe арендных (BasicButtonListener.java:252) в java.awt.Component.processMouseEvent (Компонент .jav a: 6516) на javax.swing.JComponent.processMouseEvent (JComponen t.java:3320) на java.awt.Component.processEvent (Component.java:628 1) на java.awt.Container.processEvent (Container.java:222 9) at java.awt.Component.dispatchEventImpl (C omponent.jav а: 4872) на java.awt.Container.dispatchEventImpl (Container.jav: с 2287) на java.awt.Component.dispatchEvent (Component.java:46 98) в java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:4832) на java.awt.LightweightDispatcher.processMouseEvent (С) ontainer.java:4492 в java.awt.LightweightDispatcher.dispatchEvent (Конта iner.java:4422) в java.awt.Container.dispatchEventImpl (Container.jav a: 2273) at java.awt.Window.dispatchEventImpl (Window.java:2719) at java.awt.Component.dispatchEvent (Component.java:46 98) at java.awt.EventQueue.dispatchEventImpl (EventQueue.j ava: 735) at java.awt.EventQueue.access $ 200 (EventQueue.java:103) на java.awt.EventQueue $ 3.run (EventQueue.java:694) на java.awt.EventQueue $ 3.run (EventQueue.java:692) на java.security.AccessController.doPrivileged (собственный метод) на java .security.ProtectionDomain $ 1.doIntersectionPri vilege (ProtectionDomain.java:76) at java.security.ProtectionDomain $ 1.doIntersectionPri vilege (ProtectionDomain.java:87) at java.awt.EventQueue $ 4.run (EventQueue.java:708) в java.awt.EventQueue $ 4.run (EventQueue.java:706) в java.security.AccessController.doPrivileged (Native Method) в java.security.ProtectionDomain $ 1.doIntersectionPri vilege (ProtectionDomain.java:76) в java.awt.EventQueue.dispatchEvent (EventQueue.java: 705) по адресу java.awt.EventDispatchThre ad.pumpOneEventForFilter с (EventDispatchThread.java:242) на java.awt.EventDispatchThread.pumpEventsForFilter (E ventDispatchThread.java:161) на java.awt.EventDispatchThread.pumpEventsForHierarch у (EventDispatchThread.java:150) в java.awt .EventDispatchThread.pumpEvents (EventDispa tchThread.java:146) at java.awt.EventDispatchThread.pumpEvents (EventDispa tchThread.java:138) at java.awt.EventDispatchThread.run (EventDispatchThre ad.Java: 91)Работа с NumberFormatException

Если я использую NumberFormatException мой

ps=conn.prepareStatement(sql);, 
ps.setInt(1, cm);, 
ps.setInt(2,v1);, 
ps.executeUpdate(); 

поворачивается к ошибкам, почему это так.

ответ

0

Вы должны определить v1, a и b ПОСЛЕ того, что getText не пуст.

int v1 = Integer.parseInt(lbl_READING_NUMBER.getText()); 
    int a = Integer.parseInt(jLabel_PREVIOUS_READ.getText()); 
    int b = Integer.parseInt(jLabel_PRESENT_READ.getText()); 
    int cm = Math.abs(a-b); 

Кроме того,

if(jLabel_PREVIOUS_READ.getText().equals("")){ 

} 

Это ничего не делает независимо от того, есть ли текст в предыдущем чтении, видя, как нет еще, если после него.