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'之间的最高数字。 虽然我想打印这两个整数之间的所有数字。
答案 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
的末尾,最后在循环结束后设置文本。