2016-04-30 64 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