2016-04-30 62 views
0

其实我想在textfield1中显示arraylist的第一个元素,并在textfield 2中显示它的下一个元素我希望它在我按下按钮时保持旋转。问题是,它一直显示在这两个文本框在文本域中打印arraylist元素

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]); 
} 
+0

除了你的问题不清楚,这段代码甚至不会编译。 –

+0

发布完整的代码。你为什么要迭代整个列表/数组? – Rehman

+0

什么是“团队”类,什么是“团队.P”? – Blip

回答

0

最后一个元素可以进行额外的检查(如果其他)。 如果textfield1的文本等于数组[1],则 会进行交换。 如果它会在那里。它会交换它。如果没有,那么如果检查将被忽略。

这是我了解你的问题到目前为止的答案。

0

从我从您的代码获得:

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在下面的j变化,从价值的代码片段长度3.使0至3.在j的值为2的情况下,行

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

应该丢弃ArrayIndexOutOfBoundsException作为索引j+1即3不存在P

而且当的P值为3条两者线

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

应抛出ArrayIndexOutOfBoundsException作为P的索引是3用于第二行的第一行和4。

现在既然你已经在你的评论中明确表示没有异常抛出,我觉得这段代码必须位于一个try - catch块内,它可以捕获Exception个对象。这也应该解释为什么这种行为显示P在两个文本字段中的最后一个值。

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

最后当j是3第一线本身抛出异常,以便不执行第一行后的代码,都textfield1textfield2具有文本值存储在其中"you",这是显示的内容和结果的问题你已经突出显示。

0

当您运行此代码时,您应该会得到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的前一个值是“你”

因此,最终的结果是

textfield1= you 
textfield2= you