2014-07-08 157 views
0

所以這是我的學校作業For循環輸出在jframe

編寫一個程序: 接受輸入的起始值。 接受輸入的結束值。 顯示這兩個值之間的所有整數(包含)。 提示:使用for循環,不要忘記將輸入從字符串轉換爲整數。

它寫在一個jFrame中,它只輸出最後一個值,而不是起始值和結束值之間的所有值。我正在使用NetBeans IDE 8.0。

//Variables 
int starting, ending; 
starting=Integer.parseInt(this.txtStarting.getText()); 
ending=Integer.parseInt(this.txtEnding.getText()); 

//for Loop 
for(int output=starting; output < ending; output++) { 
    String out1 = Integer.toString(output); 
    this.lblValues.setText(out1); 
} 

我不確定發生了什麼問題。當我System.out.println(output);它輸出我想要的東西。

+0

'setText'方法設置文本。它不附加到現有文本。 – Kayaman

+0

將它寫出到JTextArea,通過'myTextArea.append(out1 +「\ n」)去追加文本;' –

+0

如何將正確的文本添加到jLabel? – sadsalad

回答

0

當你調用setText()時,你正在設置JLabel中的文本(我認爲這是lblValues的類型)。以前的值沒有被存儲。您可以通過附加到一個字符串,則只需設置文本在最後解決這個問題:

String out1 = ""; 
for(int output=starting; output <= ending; output++) { 
    out1 = out1 + " " + Integer.toString(output); 
} 
this.lblValues.setText (out1); 

另外請注意,你需要輸出< =結局,不輸出<結束,作爲條件你的for循環,否則最後的值不會被包括在內。

+0

使用[字符串生成器](http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html),因爲您正在創建一個很大的性能問題。 – Matt3o12