[英]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.