2013-07-22 40 views
-1

不過,我的建築計算腳英寸,每當文本框的漏掉開放的系統無法運行該系統捕捉異常(例如(??/12)+?)我不知道我怎麼設置當文本字段爲空時,默認情況下該數字被設置爲零。與JTextField的

package calcu; 
import java.awt.event.ItemEvent; 
import java.text.NumberFormat; 
import java.awt.event.KeyEvent; 
import javax.swing.JFormattedTextField.*; 
import javax.swing.*; 
import javax.swing.JFormattedTextField.*; 

void carefull() { 
    String sumthing = ""; 
    double feet = Double.parseDouble(jTextField1.getText()); 

    double inches = Double.parseDouble(jTextField2.getText()); 
    NumberFormat changer = NumberFormat.getNumberInstance(); 
    double tik = feet * 12; 

    double tok = inches + tik; 

    try { 
     if (jTextField1.getText().trim().equals("")) { 
      double ans = inches; 
      sumthing = changer.format(ans); 
     } 
     if (jComboBox1.getSelectedItem().equals(" ")) { 
      sumthing = changer.format(tok); 
     } 
    } catch (NumberFormatException e) { 
     spum1.setText(sumthing); 
    } 
} 
+3

代碼格式是什麼?這看起來很痛苦。 – NPE

+0

你的問題是什麼? – Makky

+0

請,請,請**格式的代碼!**這是很難讓我們讀它時,它沒有格式化。 – BackSlash

回答

1

你應該抓住NumberFormatException就像這樣:

double feet; 
try { 
    feet = Double.parseDouble(jTextField1.getText()); 
} catch (NumberFormatException e) { 
    feet = 0; 
} 
double inches; 
try { 
    inches = Double.parseDouble(jTextField2.getText()); 
} catch (NumberFormatException e) { 
    inches = 0; 
} 

這也將詮釋一個非數字像123kjh爲0

+0

謝謝你洙多!我剛剛在如何做到這一點上出現了大腦故障! – Potatoesforfish

1

你可以試試這個:

String stringFeet = jTextField1.getText(); 
double feet = stringFeet.isEmpty() ? 0d : Double.parseDouble(stringFeet);