Member 13968996 Ответов: 1

Как запустить функцию через arraylist?


Я использую обработку 3.0.2, и я пытаюсь запустить функцию, которую я определил в классе из ArrayList. Обработка говорит: "функция dis() не существует." когда это очевидно происходит.

Что я уже пробовал:

У меня есть ArrayList под названием "cs", и он содержит объекты "Circle". "Круг" - это класс, который я создал, который содержит функцию под названием "dis ()", и она отображает круг. У меня есть внешняя функция под названием "disks()" (display circles), которая имеет цикл for, который должен отображать каждый круг в списке. Вот что у меня есть:

int cam_x;
int cam_y;
int mp = 0;
ArrayList cs;

void setup() {
  size(500, 500);
  cs = new ArrayList<Circle>();
}

void draw() {
  if (mousePressed && mp < 1) {
    cs.add(new Circle(mouseX,mouseY));
    mp = 1;
  } else if (!mousePressed) {
    mp = 0;
  }
  discs();
}

class Circle {
  int xa;
  int ya;
  Circle(int x,int y) {
    xa = x;
    ya = y;
  }
  
  void dis() {
    ellipseMode(CENTER);
    fill(255,0,0);
    noStroke();
    ellipse(xa, ya, 25, 25);
  }
}

void discs() {
  for (int i = 0;i<=cs.size();i++) {
    cs.get(i).dis();
  }
}


Переменные cam_x/y сейчас не используются.

1 Ответов

Рейтинг:
4

Slacker007

Я думаю, что вам нужно сделать гипс здесь для cs в вашей функции disks().

Эта ссылка может помочь вам или указать вам правильное направление.
java - не удается найти метод объекта в ArrayList - переполнение стека[^]


Member 13968996

Это сработало! Спасибо за помощь.