Я пытаюсь сделать простой код на Java: у меня есть класс с именем «Bloc», который создает блоки (квадрат), внутри которого я создаю случайную ширину (largeur) и случайную высоту (hauteur)между 2 дюймами, и я создаю случайное количество блоков (nombreBloc).Я также создаю ArrayList, чтобы поместить в него каждый блок, чтобы посмотреть, сколько у меня осталось.
Итак, я сделал функцию «insererBlocList» (вставка блока в ArrayList), которая создает «nombreBloc» (числоBloc) блоков и помещает его в ArrayList.
У меня есть графический интерфейс, в котором у меня есть 1 панель для окон, внутри которой у меня есть 2 другие панели: одна из них - поместить в нее каждый созданный мной блок.
Вот моя проблема, у меня есть «StackOverflowError» внутри моей функции «insererBlocList», что означает бесконечный цикл, но после записи пути кода я не вижу, где я допустил ошибку ..Вот код:
Класс блока:
public class Bloc extends JPanel{
private int hauteur, largeur, nombreBloc;
private boolean premierPassage = true;
private ArrayList<Bloc> listeBlocRestant;
private Random rand = new Random();
public Bloc() {
this.hauteur = 10 + rand.nextInt(50 - 10);
this.largeur = 10 + rand.nextInt(50 - 10);
listeBlocRestant = new ArrayList<Bloc>();
if(premierPassage == true) {
this.nombreBloc = 5 + rand.nextInt(30 - 5);
insererBlocList();
}
}
public ArrayList<Bloc> insererBlocList(){
premierPassage = false;
for(int i=0; i<nombreBloc; i++) {
Bloc bloc = new Bloc();
listeBlocRestant.add(bloc);
}
return listeBlocRestant;
}
Часть графического интерфейса блока панели:
private JPanel initPanelBloc() {
panelBloc = new Bloc();
}