2012-02-18 43 views
2

經過幾天之後,我仍然無法像在其他語言中一樣遍歷數組來填充文本區域。我嘗試過Google,YouTube,stackoverflow等等,我仍然無法使用任何示例來幫助我做到這一點。我也引用了Java文本。這正是我想要做的事:在Java數組中循環並將()添加到TextArea中

public void getDrinks() { 
    //System.out.println(theDrinks[arrayCount].toString()); 

    for(int i=0; i<arrayCount; i++) { 
     area.append(theDrinks[i].toString()); 
    } 
} 

這個代碼在其他語言,但東西是錯誤的,我使用TextArea或數組,因爲我得到一個空指針的方式。我很想粘貼整個程序,但那也行不通。這是唯一可以遠程正確粘貼的部分。如果可以,請你幫助我。

+0

什麼是'arrayCount'?什麼是'飲料'?你必須給我們一些工作。 – jonmorgan 2012-02-18 17:05:42

+0

另外,在調用getDrinks()之前'area'是否保證被初始化? – ig0774 2012-02-18 17:06:58

+0

arrayCount是數組中的字符串對象的數量,它是3,theDrinks是實際的數組,在調用getDrinks()之前初始化區域,我希望我能弄清楚如何在整個程序中發佈它不長的任何提示? – newbKen 2012-02-18 17:17:43

回答

0

我不能Whay你的具體問題可以沒有更多的代碼,但在這裏一些Java代碼的作品。

import java.awt.BorderLayout; 
import java.awt.TextArea; 

import javax.swing.JFrame; 

public class Driver { 

    public static void main(String[] args) { 
     // 1. Create the frame. 
     JFrame frame = new JFrame("FrameDemo"); 

     // 2. Optional: What happens when the frame closes? 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     // 3. Create components and put them in the frame. 
     // ...create emptyLabel... 

     TextArea area = new TextArea("Area"); 
     frame.getContentPane().add(area, BorderLayout.CENTER); 

     // 4. Size the frame. 
     frame.pack(); 

     // 5. Show it. 
     frame.setVisible(true); 

     String[] drinks = {"Drink1","Drink2"}; 
     getDrinks(area, drinks); 
    } 

    public static void getDrinks(TextArea area, String[] theDrinks) { 
     // System.out.println(theDrinks[arrayCount].toString()); 

     for (String drink : theDrinks) { 

      area.append(drink.toString()); 

     } 

    } 

} 
2

一般來說,當您可以幫助時,您不需要使用像arrayCount這樣的變量。一個更好的版本是這樣的:

public void getDrinks() { 
    for(int i = 0; i < theDrinks.length; i++) 
     area.append(theDrinks[i].toString()); 
} 

在這樣做時,它是確保area已經被實例化重要(即它不是null)。

如果我正在實現這一點,我會使用Java的foreach結構來代替,因爲我覺得它更具表現力。以下代碼假定theDrinks是一個Drink對象的數組。

public void getDrinks() { 
    if(area != null) { 
     for(Drink drink : theDrinks) { 
      area.append(drink.toString()); 
     } 
    } 
} 
相關問題