[英]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+1
即P
不存在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时,第一行本身将引发异常,因此第一行之后的代码将不会执行,并且textfield1
和textfield2
都将文本值"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.