2010-04-15 3 views
0

임은 다소 성가신 문제가 있습니다. 저는 Person이라는 클래스와 Event라는 클래스를 가지고 있습니다.이 클래스는 특정 이벤트에서 경쟁하는 경쟁자에게 사용될 객체를 만드는 역할을합니다. 경쟁자 thats 잘 추가하고 이에 따라 GUI 목록을 업데이트하지만 이벤트를 추가 할 때 배열의 요소는 클래스 이벤트의 인스턴스 변수 이름 값을 사용하지 않으므로 GUI에 이벤트 이름이 표시되지 않습니다. , 배열에 제대로 추가됩니다. listOfEvents 배열의 각 요소 (이벤트 객체의 배열)에있는 이벤트 객체가 이벤트의 이름을 가지도록 어떻게 만들 수 있습니까? 이 부분은 우리가 평가할 부분이 아니지만 GUI를위한 코드를 볼 수 없기 때문에 나는 간략한 벽돌 벽에 부딪쳤다.Java Object Array의 요소가 생성되었지만 올바른 이름이 지정되지 않았습니다.

필자가 작성한 코드의 전체로드를 포함하지는 않겠지 만 아래 설명과 스 니펫으로 충분합니다. 어떤 충고라도 크게 감사 할 것입니다. 의심의 여지가 간과 뭔가 간단! 많은 감사합니다.

listOfEvents는 선언과 같은 :

Event[] listOfEvents = new Event[20]; 

이벤트 클래스의 조각 :

public class Event { 
    String name; 
    Person[] participants = new Person[10]; // array of competitors for the event 

    public Event(String name) { 
     this.name = name; 
    } 
} 

addEvent 방법의 사용 (p 글로벌 변수) :

public void addEvent(String eventName) { 
     listOfEvents[p] = new Event(eventName); 
     p++; 
    } 
+2

GUI에서 무엇이 이름으로 표시되는지 알려줄 수 있습니까? –

+0

아마도 관련이 없지만 p> = 20 인 경우 listOfEvents가 오버플로되지 않았는지 확인 하시겠습니까? – Seffi

+4

이것은 "대학"으로 표시되어 있기 때문에 숙제라고 생각하고 배열을 사용해야합니다. 그러나 실제 프로그래밍 할 때 ArrayList와 같은 컬렉션 클래스 중 하나를 사용하는 것이 좋습니다. http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html –

답변

1

toString() 메서드를 구현하려고 시도 했습니까? 그래도 작동하지 않으면 GUI에서 인쇄중인 내용을 확인하여 작동중인 구현이 작동하는 방식 또는 호출되는 메소드를 추정 할 수 있습니다.

+0

나는 문자 그대로 EUREKA 순간을 가지고 있었다!! Im은 매우 어리 석다. 물론 GUI는 toString() 메소드에 의존한다. barebones라는 하나의 정의가있다. 걱정할 필요가 없습니다. 해결했지만 자극에 대한 감사드립니다. 나는 그것이 어리석게 간단한 무엇인가 일 것이다라고 당신에게 이야기했다!! – ComethTheNerd

+0

기꺼이 도와 드리겠습니다. 내 대답을 선택해 주시겠습니까? 나는 어제 스택에 게시하기 시작했고, 나는 정말로 내 대답 중 하나를 선택하여 어떤 일이 일어날 지 기대하고있다. :) – Beothorn

0

아무런 문제가 보이지 않지만 "p"를 설정하는 것은 정말 나쁜 습관입니다. "변수는 전역 변수입니다. 당신은 오히려 넣어 줄

는 :

public void addEvent(String eventName, int p) { 
     listOfEvents[p] = new Event(eventName); 
     p++; 
} 

나는 우리가 당신이 대답하기에 충분한 요소를 가지고 있다고 생각하지 않습니다.

중단 점을 사용하여 이벤트 배열을 디버그 모드에서 검사하려고 시도 했습니까?

배열의 이벤트 중 하나라도 이름이 지정 되었습니까?

이벤트를 추가 할 때마다 p 매개 변수를 다시 초기화 하시겠습니까? (항상 0이되도록 ...)

addEvent 문자열 이름이 null/empty가 아닌지 확인하십시오. 그것은 좋은 가치입니까?

+1

메소드 끝의'p ++'는 눈에 띄는 효과가없고 오히려 무의미합니다. –

+0

실제 코드에서 실제로 null P에 도달 할 때까지 요소를 계산하는 배열을 순환하는 다른 메서드 인 getNbrEvents의 결과로 P를 설정 했으므로 전역 P를 사용하지 않습니다. 나는 단지 그들이 주제로부터 떨어져서 약간이라면 나는 모든 다른 작은 조각을 포함 할 것이다라고 생각하지 않았다. 그럼에도 불구하고 위의 내용을 보면 toString 메서드 (durrrr!)를 사용하여 문제가 해결되었습니다. 친구들을 도와 주겠다는 당신의 노력에 감사드립니다. Stackoverflow는 배울 수있는 훌륭한 곳입니다 ... 그리고 실수로 배우십시오! – ComethTheNerd

관련 문제