2012-04-08 11 views
-1

Ich arbeite an einer kleinen Anwendung, die Finanzen und so weiter behandelt. Die Entwicklungsumgebung, die ich benutze, ist Netbeans.laufende Datei, bekomme StackOverflowError

Ich habe ein Verfahren Klasse (genannt Methoden), wo ich alle Methoden gespeichert sind, eine Datenklasse, und die Rahmenklasse

Um eine Eingabe I, ein Verfahren in dem Verfahren definiert (Fenster1 genannt) -Klasse und versuchte, es ist in Ordnung mit

Methoden m = new Methoden(); 
... 
buttonAction { 
    m.getInput(); 
} 

-Code zugreifen, überhaupt keine Fehler. Aber wenn ich versuche, die Anwendung zu starten dauert es eine Weile, und dann dieser Fehler angezeigt:

Exception in thread „AWT-Eventqueue-0“ java.lang.StackOverflowError bei sun.awt.Win32GraphicsConfig.getBounds (Muttersprache Methode)
bei sun.awt.Win32GraphicsConfig.getBounds (Win32GraphicsConfig.java:222) bei java.awt.Window.init (Window.java:496)
bei java.awt.Window. (Window.java:535)
bei java.awt.Frame. (Frame.java:420)
bei java.awt.Frame. (Frame.java:385)
bei javax.swing.JFrame. (JFrame.java:180)
bei haushaltsbuch.Fenster1 (Fenster1.java:19)
bei haushaltsbuch.Methoden (Methoden.java:16)

Jetzt:.. Wie kann ich dieses Problem beheben Fehler zu machen läuft alles gut?


scheint aufgelöst zu sein.

in Fenster1 war Methoden m = new Methoden(); während in Methoden dort Fenster1 f = new Fenster1(); war

+1

Vermutlich haben Sie eine Rekursion - eine Methode, die sich selbst nennt, oder vielleicht eher eine Klasse, die sich immer wieder neu erstellt. Vielleicht erstellt der JFrame die Method-Klasse, die den JFrame erzeugt, der die Methode erstellt, ... etc ... Nicht meine Down-Vote, aber Sie haben nicht genug gepostet, um uns mehr zu erlauben, als nur zu raten. Sie sollten den Code um die Zeilen, die den Fehler stacktrace verursachen, mindestens veröffentlichen. –

+0

Nochmals, bitte geben Sie weitere Informationen. –

+0

scheint das Problem gewesen zu sein. Eine Klasse erstellte ein Referenzobjekt für die andere, und die andere machte das gleiche umgekehrt. Aber wie kann ich z. Schaltflächen aus der einen Klasse und Methoden aus der anderen Klasse, ohne in Rekursion zu enden? – michaelbahr

Antwort

3

ein Stapelüberlauf Ausnahme Mittel (in der Regel), die eine Funktion selbst rekursiv aufruft. Ich würde vermuten, dass Methoden # getInput() dies tut.

Verwandte Themen