2016-04-02 10 views
0
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String 
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842) 
    at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110) 
    at java.lang.Double.parseDouble(Double.java:538) 
    at hotelsystem.hotelframe.checkbox1MouseClicked(hotelframe.java:1698) 
    at hotelsystem.hotelframe.access$000(hotelframe.java:15) 
    at hotelsystem.hotelframe$1.mouseClicked(hotelframe.java:185) 
    at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270) 
    at java.awt.Component.processMouseEvent(Component.java:6528) 
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
    at java.awt.Component.processEvent(Component.java:6290) 
    at java.awt.Container.processEvent(Container.java:2234) 
    at java.awt.Component.dispatchEventImpl(Component.java:4881) 
    at java.awt.Container.dispatchEventImpl(Container.java:2292) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) 
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4542) 
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) 
    at java.awt.Container.dispatchEventImpl(Container.java:2278) 
    at java.awt.Window.dispatchEventImpl(Window.java:2739) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) 
    at java.awt.EventQueue.access$400(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:697) 
    at java.awt.EventQueue$3.run(EventQueue.java:691) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) 
    at java.awt.EventQueue$4.run(EventQueue.java:719) 
    at java.awt.EventQueue$4.run(EventQueue.java:717) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 

private void checkbox1MouseClicked(java.awt.event.MouseEvent evt) { 
    double cmeal = Double.parseDouble(mealout.getText()); 
    double cmealp = Double.parseDouble(price1.getText()); 
    double cmealq = Double.parseDouble(quantity1.getText()); 


    if (checkbox1.isSelected()) { 
     i[0] = ((cmealp * cmealq) + cmeal); 
     String pmeal = String.format("%.2f", i[0]); 
     mealout.setText(pmeal); 
    } 
} 
+1

'empty String'これはベルを鳴らすはずです。 –

答えて

0

例外はparseDoubleはあなたがやろうとしているということを意味し空の文字列か、ダブルでフォーマットできない文字列[doc source]が渡されています。 getText()への3回の呼び出しが空でない文字列を返すようにする必要があります。それができない場合は、try..catchブロックを使用して例外を処理することをお勧めします。

0

スタックトレースに空文字列が表示されます。 これを解決するには、文字列が空であるかどうかをチェックし、フォーマットしようとしていない場合は0に設定するか、この場合は何でもしてください。

しかし、よりよい解決策、あなたはあなたが受け取る文字列がわからない場合、それは例のために、文字列がnullでなく、tryおよびcatch NumberFormatExceptionでそれをラップすることになりますが、ちょうどない数

0
double cmeal = Double.parseDouble(mealout.getText()); 
double cmealp= Double.parseDouble(price1.getText()); 
double cmealq= Double.parseDouble(quantity1.getText()); 

これは、例外から得ようとしている3行です。 は、空白で始まるex: " 3"文字列は数値のように見えますが、 という文字列から2文字を取得しようとしている場合に発生します。 最初に3つのtetフィールドから取得する値を確認してください。

関連する問題