2009-11-11 190 views
1
Test[] array = new Test[3]; 

    array[0] = new RowBoat("Wood", "Oars", 10); 
    array[1] = new PowerBoat("Fiberglass", "Outboard", 35); 
    array[2] = new SailBoat("Composite", "Sail", 40); 

我有上面的數組,我需要顯示結果到一個搖擺的GUI與下一個按鈕,將顯示第一個索引值,當下一個按鈕被點擊時,它會顯示下一個索引值等等。爪哇,頁通過陣列

for (int i=0;; i++) { 
      boatMaterialTextField.setText(array[i].getBoatMaterial()); 
      boatPropulsionField.setText(array[i].getBoatPropulstion()); 
    } 

我有上面的代碼工作,當然它顯示數組中的最後一項。

我的問題是:我將如何顯示數組中的第一個索引,並且當用戶單擊下一個顯示數組中的下一個項目以及點擊後退按鈕時轉到上一個索引?

簡而言之,我需要在單擊按鈕時遍歷每個索引。

+2

您的for循環對我來說看起來像一個無限循環。你確定你輸入正確嗎? – Asaph 2009-11-11 03:21:13

+0

你的意思是你只顯示10,35,40的值嗎? 該循環會給你一個無限循環。因爲你沒有任何條件說什麼時候停止。 例如 for(int i = 0; i Treby 2009-11-11 03:23:11

+0

我用這裏的提示說明長度檢查是多餘的。這不準確嗎? http://developer.sonyericsson.com/site/global/techsupport/tipstrickscode/java/p_fastiteratingarrayorvectorjava.jsp – 2009-11-11 03:32:41

回答

1

你不需要循環。當框架第一次加載時,您可以簡單地顯示數組中的第一個項目。然後您可以創建下一個按鈕。

JButton nextBtn; 
int currentIndex; 

... 

currentIndex = 0; 
//display the first item in the array. 
boatMaterialTextField.setText(array[currentIndex].getBoatMaterial()); 
boatPropulsionField.setText(array[currentIndex].getBoatPropulstion()); 

nextBtn = new JButton("Next>>"); 
nextBtn.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e){ 
     if(currentIndex < array.length){ 
     boatMaterialTextField.setText(array[++currentIndex].getBoatMaterial()); 
     boatPropulsionField.setText(array[currentIndex].getBoatPropulstion());  
     } 
    } 
}); 

您可以添加另一個按鈕以前,根本每次確保檢查它永遠不會變成負遞減CURRENTINDEX。

+0

這是光滑的文森特,非常好。謝謝 – 2009-11-11 03:28:57