Hi,
nachdem ich auf Google und hier in der Sufu nichts gefunden habe, habe ich mir mal einen Account gemacht damit ich mein Problem mal posten kann.
Also, ich arbeite zurzeit an einem eigenen Schachprogramm welches ich unter anderem für Bewerbungszwecke als "Fähigkeitenpräsentation" verwenden will. Ich habe jetzt aber einen komischen Fehler.
Nämlich, meine Methoden werden nicht der Reihe nach aufgerufen. In meiner Main starte ich zuerst mit der initialisierung der Gui, danach mach ich eine Instanz ich einer Klasse die erstmal unwichtig ist, und danach mach ich eine Instanz von meinem Figur_Manager, welche im Konstruktor eine Methode aufruft, welche die Gui füllen soll bzw. die Schachfiguren auf die Felder setzt. Das ist meine Main:
Gui_Manager initialisiert die Gui, Figur_Manager füllt die Gui beim initialisieren mit den Schachfiguren. Aus einem mir unbekannten Grund, wird Figur_Manager mehr oder weniger vor dem Gui_Manager ausgeführt. Dadurch bekomm ich einen Nullpointer-Error.
Ich habe nach langem rumprobieren und Fehlersuche folgendes ausprobiert:
Wenn ich das mache, dann funktioniert mein Programm. Die Gui wird gestartet und ordnungsgemäß mit den Schachfiguren gefüllt. Ich habe die vermutung das mein Rechner meint er muss Multithreading machen und deswegen führt er Figur_Manager zusammen mit Gui_Manager aus, wodurch ich den Nullpointer-Error bekomm weil der Figur_Manager auf Objekte zugreift die bis dahin noch nicht existieren.
Ich poste hier auch nochmal meinen Fehlercode:
Ich habe die printlns am Anfang des Konstruktors und in der letzten Zeile der letzten Methode die vom jeweiligen Konstrutor aufgerufen wird. Wenn ich im Debugger durchgehe funktioniert alles einwandfrei, da er ja alles sauber und brav nacheinander abarbeitet.
Falls noch Fragen offen sind beantworte ich diese gerne. Hoffentlich könnt ihr mir helfen.
nachdem ich auf Google und hier in der Sufu nichts gefunden habe, habe ich mir mal einen Account gemacht damit ich mein Problem mal posten kann.
Also, ich arbeite zurzeit an einem eigenen Schachprogramm welches ich unter anderem für Bewerbungszwecke als "Fähigkeitenpräsentation" verwenden will. Ich habe jetzt aber einen komischen Fehler.
Nämlich, meine Methoden werden nicht der Reihe nach aufgerufen. In meiner Main starte ich zuerst mit der initialisierung der Gui, danach mach ich eine Instanz ich einer Klasse die erstmal unwichtig ist, und danach mach ich eine Instanz von meinem Figur_Manager, welche im Konstruktor eine Methode aufruft, welche die Gui füllen soll bzw. die Schachfiguren auf die Felder setzt. Das ist meine Main:
Java:
public static void main(String[] args) {
gui_man = new Gui_Manager();
move_man = new Move_Manager();
fig_man = new Figur_Manager();
// turns = 0;
}
Gui_Manager initialisiert die Gui, Figur_Manager füllt die Gui beim initialisieren mit den Schachfiguren. Aus einem mir unbekannten Grund, wird Figur_Manager mehr oder weniger vor dem Gui_Manager ausgeführt. Dadurch bekomm ich einen Nullpointer-Error.
Ich habe nach langem rumprobieren und Fehlersuche folgendes ausprobiert:
Java:
public static void main(String[] args) {
gui_man = new Gui_Manager();
for(int i = 0; i < 100000; i++){
System.out.println("lets waste some time");
}
move_man = new Move_Manager();
fig_man = new Figur_Manager();
// turns = 0;
}
Wenn ich das mache, dann funktioniert mein Programm. Die Gui wird gestartet und ordnungsgemäß mit den Schachfiguren gefüllt. Ich habe die vermutung das mein Rechner meint er muss Multithreading machen und deswegen führt er Figur_Manager zusammen mit Gui_Manager aus, wodurch ich den Nullpointer-Error bekomm weil der Figur_Manager auf Objekte zugreift die bis dahin noch nicht existieren.
Ich poste hier auch nochmal meinen Fehlercode:
Gui wird initialisiert
Figurmanager wird initialisiert
Exception in thread "main" java.lang.NullPointerException
at gui_manager.GuiSwing.setFigur(GuiSwing.java:105)
at gui_manager.Gui_Manager.setKoords(Gui_Manager.java:18)
at main_manager.Main.setKoords(Main.java:100)
at figur_manager.Figur_Manager.setFigur(Figur_Manager.java:60)
at figur_manager.Figur.<init>(Figur.java:25)
at figur_manager.Bauer.<init>(Bauer.java:11)
at figur_manager.Figur_Manager.init(Figur_Manager.java:26)
at figur_manager.Figur_Manager.<init>(Figur_Manager.java:14)
at main_manager.Main.main(Main.java:25)
Gui wurde initialisiert
Ich habe die printlns am Anfang des Konstruktors und in der letzten Zeile der letzten Methode die vom jeweiligen Konstrutor aufgerufen wird. Wenn ich im Debugger durchgehe funktioniert alles einwandfrei, da er ja alles sauber und brav nacheinander abarbeitet.
Falls noch Fragen offen sind beantworte ich diese gerne. Hoffentlich könnt ihr mir helfen.