2012-02-18 6 views
2

2日以上経っても、他の言語でもできるように、配列を通ってテキスト領域を埋めることができません。私はGoogle、YouTube、stackoverflowなどを試してみましたが、これを手助けするための例はまだありません。私はJavaのテキストも参照しました。ここで私が何をしようとしています正確に何である:Java配列をループし、TextAreaにappend()を追加

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

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

このコードは、他の言語で動作しますが、私はNULLポインタを取得していますので、何かが、私はTextAreaまたは配列を使用しています方法が間違っています。私はプログラム全体を貼り付けるのが大好きですが、それもうまくいきません。これはリモートで正確に貼り付ける唯一の部分です。あなたができるなら私を助けてください。

+0

「arrayCount」とは何ですか? 'theDrinks'とは何ですか?あなたは私たちに仕事のために何かを与えなければなりません。 – jonmorgan

+0

また、 'area'は' getDrinks() 'が呼び出される前に初期化されることが保証されていますか? – ig0774

+0

arrayCountは3の配列の文字列オブジェクトの数であり、theDrinksは実際の配列であり、getDrinks()が呼び出される前に領域が初期化されています。 – newbKen

答えて

0

あなたの特定の問題は、より多くのコードがなくてもうまくいくわけではありませんが、ここでは動作するいくつかの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構造を使用します。次のコードは、theDrinksDrinkオブジェクトの配列であることを前提としています。

public void getDrinks() { 
    if(area != null) { 
     for(Drink drink : theDrinks) { 
      area.append(drink.toString()); 
     } 
    } 
} 
関連する問題