Элементы Java Object Array созданы, но без правильных имен - PullRequest
0 голосов
/ 15 апреля 2010

У меня довольно неприятная проблема. У меня есть класс с именем Person и класс с именем Event, которые служат для создания объектов, которые будут использоваться конкурентами, участвующими в определенном событии. Когда я добавляю конкурента, это нормально, и список GUI обновляется соответствующим образом, однако, когда я добавляю событие, элемент в массиве не принимает значение имени переменной экземпляра в классе Event, и поэтому графический интерфейс не показывает имя события хотя он добавляется в массив правильно. Как сделать так, чтобы объект события в каждом элементе массива listOfEvents (который является массивом объектов события) имел имя события. Я должен добавить, что это для университета, хотя это не та часть, по которой мы будем оцениваться, это что-то, с чем я столкнулся, и из-за невозможности увидеть код для графического интерфейса, я наткнулся на общеизвестную кирпичную стену.

Я не буду включать весь объем кода, который я писал, но, надеюсь, моего описания и фрагментов ниже будет достаточно. Любой совет, я был бы очень признателен. Без сомнения, я упустил что-то простое! Большое спасибо.

listOfEvents объявляется как:

Event[] listOfEvents = new Event[20];

Фрагмент из класса Event:

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 ]

1 голос
/ 15 апреля 2010

Вы пытались реализовать метод toString ()? Если это не сработает, вы можете увидеть, как работает работающая реализация или определить, какой метод вызывается, посмотрев, что печатается в GUI.

0 голосов
/ 15 апреля 2010

Не вижу никакого значения, но действительно очень плохо устанавливать переменную "p" как глобальную переменную.

Вы бы предпочли поставить:

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

Не думаю, что у нас достаточно элементов, чтобы ответить вам.

Вы пытались проверить в режиме отладки свой массив событий, используя точки останова?

Названы ли какие-либо события из массива?

Вы уверены, что не перезапускаете параметр p каждый раз, когда пытаетесь добавить событие? (чтобы всегда было 0 ...)

Вы уверены, что ваше имя строки addEvent не пусто? Это хорошая ценность?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...