2013-02-19 57 views
-1

當我單擊我的應用程序的計算按鈕時,它將在JTextField中顯示輸出。但是總是會有字符串「null」前置,我無法向自己解釋爲什麼會發生這種情況。爲什麼輸出中有一個單詞爲空?

下面是相關的代碼:

total1.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     String timeIn = tIn1.getText(); 
     String timeInArr[] = strtimein.split(":"); 
     double dblTimeInHr = Double.parseDouble(timeInArr[0]); 
     double dblTimeInMin = Double.parseDouble(timeInArr[1]); 
     double dblTotalTimeIn = dblTimeInHr + (dblTimeInMin/60); 

     String timeOut = tOut1.getText(); 
     String timeOutArr[] = strtimeout.split(":"); 
     double dblTimeOutHr = Double.parseDouble(timeOutArr[0]); 
     double dblTimeOutMin = Double.parseDouble(timeOutArr[1]); 
     double dblTotalTimeOut = dblTimeOutHr + (dblTimeOutMin/60); 

     totalHours = totalHours + (dblTotalTimeOut - dblTotalTimeIn); 

     tal1.setText(totalHours); 
    } 
}); 

這裏是我的GUI的畫面: timecard http://i48.tinypic.com/2qtybo2.png

爲什麼會出現空?請幫助

+2

你有一些額外的東西在你的代碼返回一個空值,它的打印出來 – 2013-02-19 16:18:52

+0

你可以把一些代碼周圍,我會建議專門採取行動執行部分 – 2013-02-19 16:20:31

+0

我使用的代碼是在這裏:http:// stackoverflow .com/questions/14960996/how-do-i-calculate-total-hours-in-a-gui-based-program請看看謝謝 – Ciara 2013-02-19 16:22:50

回答

2

如果從你的最後一個問題的代碼是有點近,我想這是該行:

totalHours = totalHours + (dblTotalTimeOut - dblTotalTimeIn); 

如果totalHoursnull它concats「空」與dblTotalTimeOut - dblTotalTimeIn的結果(這是隱含由於串聯轉換爲String)。

請注意,totalHours的聲明不包含在您的代碼中,所以我必須猜測它是String(這沒有多大意義),因爲您致電tal1.setText(totalHours);

+0

哦,我現在看到了。它被宣佈爲private String totalHours;所以我想我應該輸入私人字符串totalHours =「」;和它的工作。非常感謝! – Ciara 2013-02-19 16:57:53

相關問題