繁体   English   中英

在文本字段中打印arraylist元素

[英]Printing arraylist elements in textfield

实际上,我想在textfield1中显示arraylist的第一个元素,在textfield 2中显示它的下一个元素,我希望它在我按下按钮时保持旋转。 问题在于它一直在两个文本字段中显示最后一个元素

public class Teams
{
    String[] P={"Hi","there","you"};
}

Teams tm=new Teams();
for(int j=0;j<=tm.P.length; j++){
   textfield1.setText(tm.P[j]);
   textfield2.setText(tm.P[j+1]);
}

您可以执行其他检查(If-Else)。 如果textfield1的文本等于array [1],则进行交换。 如果会在那里。 它将交换它。 如果不是,则If检查将被忽略。

到目前为止,这就是我理解您的问题的答案。

从我从您的代码中得到的:

public class Teams{
    String[] P={"Hi","there","you"};
}

另一堂课

 //Inside some function in another class   
 Teams tm=new Teams();
 for(int j=0;j<=tm.P.length; j++){
    textfield1.setText(tm.P[j]);
    textfield2.setText(tm.P[j+1]);
 }

Teams类中的变量P长度为3。因此,在下面的代码段中, j的值从0更改为3。如果j值为2,则该行

textfield2.setText(tm.P[j+1]);

应该抛出ArrayIndexOutOfBoundsException因为索引j+1P不存在3。

同样当P值为3时

 textfield1.setText(tm.P[j]);
 textfield2.setText(tm.P[j+1]);

应该抛出ArrayIndexOutOfBoundsException因为第一行的P的索引是3,第二行的P的索引是4。

现在,由于您已经在注释中清楚地指出没有抛出异常,因此我认为这段代码必须位于try - catch块中,该块捕获Exception对象。 这也应解释为什么在两个文本字段中都出现这种显示P的最后一个值的行为。

j为1时, textfield2.setText(tm.P[j+1])将此字段的文本设置为最后一个元素"you" 现在,在下一个循环中,当j达到值2时,第一个文本字段textfield2被设置为最后一个元素"you" 但是在下一行中会引发异常,因此该行不会被执行,因此textfield2的文本仍保留给you

最终,当j为3时,第一行本身将引发异常,因此第一行之后的代码将不会执行,并且textfield1textfield2都将文本值"you"存储在其中,这将显示并导致您遇到的问题突出显示。

运行此代码时,应获取ArrayIndexOutOfBoundsException异常。 您的代码将以异常终止。

根据您的示例tm.P.length为3。

当j = 2时

 textfield1= there
 textfield2= you

当j = 3时

 textfield1= you

 textfield2.setText(tm.P[j+1]);

正在获取异常(ArrayIndexOutOfBoundsException)并终止流,因为tm.P [4](数组中没有这样的位置),但是textfield2的上一个值为“ you”

所以你的最终结果是

 textfield1= you
 textfield2= you

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM