[英]only showing largest number while i want to print all numbers between two integers
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”之間的最高數字。 雖然我想打印這兩個整數之間的所有數字。
因為您沒有追加到文本,所以每次都覆蓋它。
最好的選擇是首先構建所需的文本,然后將其一次性放置在UI文本字段中,這是最有效的,因為它不會觸發許多虛假的UI事件:
StringBuilder b = new StringBuilder();
for(i=b;i<=a;i++)
{
b.append(i).append(' ');
}
jTextField3.setText(b.toString());
在這里,您每次都將textField的值設置為新的i值。 您應該首先連接所有i的值,然后將其設置為textField。
int a = Integer.parseInt(T1.getText());
int b = Integer.parseInt(T2.getText());
String s = "";
int i;
if(a>b)
{
for(i=b;i<=a;i++)
{
s = s + " " + i;
}
}
if(b>a)
{
for(i=a;i<=b;i++)
{
s = s + " " + i;
}
}
jTextField3.setText(s);
setText()
將覆蓋您之前設置的所有內容,因此在循環結束時,只有最后一個數字(最大)將顯示在文本字段中。
您必須將循環中的內容更改為:
String s = "";
for (...) {
s += ""+i;
}
jTextField3.setText(s);
這將繼續將新值連接到字符串s
的末尾,並在循環結束后最終設置文本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.