簡體   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