Ваша проблема очень проста для решения, поэтому я дам краткое объяснение / решение.
Ваша текущая проблема в том, что вы не определяете свой knotenliste ,Вы должны определить это как следующее поле:
private static Knoten[] knotenliste = new Knoten[Gui.zaehler];
Я бы посоветовал вам не использовать статическое значение, но начать работать с фиксированным ArrayList (для индексации точек на графике) или Очередь .Оба из них могут быть найдены в документации Java, если вы прочитали о них.Я бы сделал следующее:
public class Graph {
private final ArrayList<Knoten> knotenliste = new ArrayList<>(Gui.zaehler);
public void punktHinzufuegen(int x, int y) {
for (int i = 0; i < Gui.zaehler; i++) {
// Keep in mind that the List#add(int index, E element) will
// shift all the elements previously in the array to the right.
knotenliste.add(i, new Knoten(x, y));
}
}
}
С этим вы не только прекратите злоупотреблять статическим ключевым словом, но и получите более гибкую коллекцию для сохранения своего узла.