1

我有 3 个文本框。一个文本框包含一些整数,例如:2 我想做的是我想迭代循环 2 次.. 在每次迭代中我想在文本框中打印值。在进行下一次迭代之前,我正在清除文本框。经过 2 次迭代后,我想让文本框可编辑为 false。但问题是循环迭代 2 次,但文本框中的值仅在第 1 次迭代时打印。我写了以下代码

int i=1;
do
{
System.out.println(ext_people_name.getText());
System.out.println(ext_contact_num.getText());
System.out.println(i);
ext_people_name.setText("");
ext_contact_num.setText("");
i++;
if(i>nop1)
{
ext_people_name.setEditable(false); 
ext_contact_num.setEditable(false); 
break;
}
}while(i<=nop1); 

我现在得到的输出是

neha
8798
1
2

任何人都可以告诉任何替代方案或请帮助

4

4 回答 4

3
I am clearing the textbox before going to the next iteration

在那里,你解决了你自己的问题!

于 2012-05-18T05:03:57.993 回答
0

对于您的代码,最好使用 for 循环而不是 do/while。像这样重构你的代码:

for (int i=1; i<=nop1; i++) {
   System.out.println(ext_people_name.getText());
   System.out.println(ext_contact_num.getText());
   System.out.println(i);
   ext_people_name.setText("");
   ext_contact_num.setText("");
};

ext_people_name.setEditable(false); 
ext_contact_num.setEditable(false); 
于 2012-05-18T05:05:15.720 回答
0

您自己给出了答案 - 您在下一次迭代之前清除了文本框。因此,它不包含值,因此不会打印值。

您需要做的是重新设计您正在做的事情并将其分解为更小的步骤。与其尝试使用一个循环来做所有事情,不如将其分解为更小的循环。

我也不太明白你想要做什么。为什么在下一次迭代之前清除文本框?

如果您只想显示文本框值两次,然后清除它们并使其不可编辑,请在单独的步骤中执行此操作。

或者,编辑您的原始问题并添加一些我们可以更好地理解它的上下文。

于 2012-05-18T05:06:55.033 回答
0

您在每次迭代后清除文本框中的值,这会使值为空并且不打印任何内容

System.out.println("some   "+ext_people_name.getText()); 
System.out.println("some   "+ext_contact_num.getText());

使用上面的代码,你会发现你在迭代后覆盖了结果

于 2012-05-18T05:09:21.407 回答