Java:无法在循环中打印textbox的值

时间:2012-05-18 05:01:41

标签: java

我有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 个答案:

答案 0 :(得分:3)

I am clearing the textbox before going to the next iteration

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

答案 1 :(得分: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); 

答案 2 :(得分:0)

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

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

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

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

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

答案 3 :(得分:0)

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

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

使用上面的代码,你可以看到你在迭代后覆盖了结果