2014-10-05 107 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); 
    } 
} 

在異常線程 「AWT-EventQueue的-0」 java.lang.NumberFormatException:對於輸入字符串: 「」 在java.lang.NumberFormatException.forInputString(民berFormatException.java:65) 在java.lang.Integer.parseInt(Integer.java:504) at mawasa_water_system.MainForm上的java.lang.Integer.parseInt(Integer.java:527) at mawasa_water_system.MainForm.Cubic_meter(MainForm.java:210) 。 PREVIOUS_READING_OKAc tionPerformed(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) at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:2018) at javax.swing.AbstractButton $ Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402 ) at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component .java a:6516) at javax.swing.JComponent.processMouseEvent(JComponen t.java:3320) at java.awt.Component.processEvent(Component.java:628 1) at java.awt.Container.processEvent( Container.java:222 9) at java.awt.Component.dispatchEventImpl(C在java.awt.Container.dispatchEventImpl(Container.jav a:2287) at java.awt.Component.dispatchEvent(Component.java:46 98) at java.awt.LightweightDispatcher.retargetMouseEvent(Component.java:46 98) at java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:4832) 在java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:4492) 在java.awt.LightweightDispatcher.dispatchEvent(CONTA 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) at java.awt.EventQueue $ 3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at 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(本機方法) 在java.security.ProtectionDomain $ 1.doIntersectionPri vilege(ProtectionDomain.java:76) 在java.awt.EventQueue.dispatchEvent(EventQueue.java:705) at java.awt.EventDispatchThre ad.pumpOneEventForFilter S(EventDispatchThread.java:242) 在java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:161) 在java.awt.EventDispatchThread.pumpEventsForHierarch Y(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

您應該在驗證getText不爲空後定義v1,a和b。

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); 

此外,

​​

這什麼都不做,無論是否有以前讀文本,看到沒有別的,如果之後。