2012-02-18 2 views
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()); 
    } 
} 

이 코드는 다른 언어로 작동하지만 뭔가 내가 널 포인터를 얻고 있기 때문에이 TextArea 또는 배열을 사용하고있는 방법에 문제가 있습니다. 전체 프로그램을 붙여 넣기를 원하지만 작동하지 않습니다. 이 부분 만 원격으로 정확하게 붙여 넣을 수 있습니다. 가능하면 도와주세요.

+0

무엇이'arrayCount'입니까? 'theDrinks' 란 무엇입니까? 함께 일할 뭔가를 우리에게 주어야합니다. – jonmorgan

+0

또한'getDrinks()'가 호출되기 전에'area'가 초기화되도록 보장됩니까? – ig0774

+0

arrayCount는 3의 배열에있는 string 객체의 수이며, 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()); 
} 

, (즉,이 null되지 않습니다) area 이미 인스턴스화되고 있는지 확인하는 것이 중요합니다.

만약 내가 이것을 구현했다면, 나는 좀 더 표현력이 풍부한 것으로 보아 대신에 Java의 foreach 구조체를 사용할 것입니다. 다음 코드는 theDrinksDrink 개체의 배열이라고 가정합니다.

public void getDrinks() { 
    if(area != null) { 
     for(Drink drink : theDrinks) { 
      area.append(drink.toString()); 
     } 
    } 
} 
관련 문제