2014-07-08 158 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