只显示最大数字,而我想打印两个整数之间的所有数字

时间:2015-12-22 05:13:40

标签: java

int a = Integer.parseInt(T1.getText());
int b = Integer.parseInt(T2.getText());
int i;

if(a>b) {
    for(i=b;i<=a;i++) {
        jTextField3.setText(""+i);
    }
}

if(b>a) {
    for(i=a;i<=b;i++) {
        jTextField3.setText(""+i);
    }
}

它只显示'a'和'b'之间的最高数字。 虽然我想打印这两个整数之间的所有数字。

3 个答案:

答案 0 :(得分:3)

因为您没有附加到文本,所以每次都会覆盖它。

您最好的选择是首先构建您想要的文本,然后在UI文本字段中一次性使用它,这是最有效的,因为它不会触发许多虚假的UI事件:

StringBuilder b = new StringBuilder();
for(i=b;i<=a;i++)
{
    b.append(i).append(' ');
}
jTextField3.setText(b.toString());

答案 1 :(得分:0)

在这里,您每次都将textField的值设置为新的值。您应首先连接所有i的值,然后将其设置为textField。

class User < ActiveRecord::Base

  def first_name
    self.name.split(" ")[0..-2].join(" ")
  end

  def last_name
    self.name.split(" ").last
  end
end

User.create name: "John M. Smith"
User.first.first_name
# => "John M."
User.first.last_name
# => "Smith"

答案 2 :(得分:0)

setText()会覆盖您之前在循环结束时设置的所有内容,只会在文本字段中显示最后一个数字(最大数字)。

您必须将循环中的内容更改为:

String s = "";

for (...) {
    s += ""+i;
}

jTextField3.setText(s);

这会将新值连接到字符串s的末尾,最后在循环结束后设置文本。