StackOverFlow bei JOptionPane?

Status
Nicht offen für weitere Antworten.

Morpheus2100

Mitglied
HI Leute,

ich hab ein problem, was ich aber ehrlichgesagt nicht wirklich weis ist, warum es ein problem ist!

Hab ein Programm geschrieben, was bei mir tadellos läuft!

Aller dings im Standort München nicht! Sie verwenden die Java Version 1.4.2.. und ich die 1.5.0..!

Es passiert nur in einer Überprüfung ein komischer Fehler?

Code:
if (dateText.matches("\\d\\d\\x2E\\d\\d\\x2E\\d\\d\\d\\d"))
            {
                            dateField.setText(dateText);       
            }
            else
            {
                JOptionPane.showMessageDialog(null, "Bitte geben Sie das Datum im Format tt.mm.jjjj ein", "Hinweis", JOptionPane.ERROR_MESSAGE);
                    dateField.grabFocus();
                dateField.selectAll();   
                flag=false;
            }


Und zwar verursacht die JOptionPane eine StackOverFlow!!!!! Wieso weshalb warum!
Mittler weilen beschäftigen sich 3 Kollegen mit dem Fehler, aber keiner kann was finden?

DANKE
MFG
MIKE
 

Morpheus2100

Mitglied
Wildcard hat gesagt.:
Hört sich seltsam an. Schon die Bugs gecheckt? Poste mal bitte den Stacktrace.

HMMM hab jetzt rausgefunden, dass es an der Java Version liegt!
mit der 1.5 gehts mit der 1.4 ned!!!

wenn ich das JOptionPane auskommentiere und ne einfach sysout gebe! Gehts einwandfrei!?????
OHHH man ich verstehs nicht!

Stracktrace kommt sofort!

DANKE
MFG
MIKE
 

Morpheus2100

Mitglied
Wildcard hat gesagt.:
Morpheus2100 hat gesagt.:
foobar hat gesagt.:
Von wo wird der obige Code denn ausgerufen? Aus einem Keylistener oder einem Focuslistener?

das macht der Inputveryier glaub dass das ein "Focuslistener" ist!!!
MFG
Mike
Dann kommentier das 'dateField.grabFocus();' mal aus und schau ob's immer noch einen StackOverflow gibt.

Ja kommt noch immer!

Code:
2006-08-04 11:23:25,921 [AWT-EventQueue-0] ERROR de.medit.util.StringUtils - Fehler beim Konvertieren des Datums!
java.text.ParseException: Unparseable date: "gg"
	at java.text.DateFormat.parse(DateFormat.java:335)
	at de.medit.util.StringUtils.toDate(StringUtils.java:146)
	at de.medit.xplanner.export.ExportGuiSheets$PushButtonActionListener.actionPerformed(ExportGuiSheets.java:142)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
	at java.awt.Component.processMouseEvent(Component.java:5100)
	at java.awt.Component.processEvent(Component.java:4897)
	at java.awt.Container.processEvent(Container.java:1569)
	at java.awt.Component.dispatchEventImpl(Component.java:3615)
	at java.awt.Container.dispatchEventImpl(Container.java:1627)
	at java.awt.Component.dispatchEvent(Component.java:3477)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
	at java.awt.Container.dispatchEventImpl(Container.java:1613)
	at java.awt.Window.dispatchEventImpl(Window.java:1606)
	at java.awt.Component.dispatchEvent(Component.java:3477)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
 

foobar

Top Contributor
das macht der Inputveryier glaub dass das ein "Focuslistener" ist!!!
Jo, da liegt das Problem. Wie Wildcard schon geschrieben hat mußt du das grabFocus entfernen. Oder du packst den ganzen Code in einen Thread und lässt ihn über SwingUtilitis.invokeLater ausführen.
Das ist ein Knownbug in Swing, da bin ich auch schon drauf reingefallen ;-)
 

Morpheus2100

Mitglied
Code:
java.lang.StackOverflowError
Ist euch die lieber?
Das kommt wenn man sich das ganze im debug anschaut! (Die Fehlermelden von Oben"Dateparse")!!!!!

ÄHHHM leider hab ich nochnicht ganz verstanden was ich jetzt anstellen soll, damit funzt!

DANKE
MFG
MIKE
 

Wildcard

Top Contributor
Und du bist dir ganz sicher das der StackOverflow auch passierst wenn das grabFocus raus ist (und du ein gültiges Format eingibst :roll: )?
 

Morpheus2100

Mitglied
ÄHHHH wenn ich ein gültiges Format eingebe, gehts ja ehhh!
Nur wenn ich ein falsches wie z.B. "24.1z.jj06" eingebe, dann kommt der stackoverflow!!!
Natürlich nur, wenn ich das textfeld in irgendeiner form verlasse, klar wegen dem focus!

HIER CODE BEISPIEL der KLASSE:
Code:
public class InputDateVerifier extends InputVerifier  {

	/**
	 * @param args
	 */
	public boolean verify(JComponent input)
    {
        JTextField dateField = (JTextField) input;
        String dateText = dateField.getText();
        boolean flag = true;
       
        if(!StringUtils.isEmpty(dateText))
        {
            if (dateText.matches("\\d\\d\\x2E\\d\\d\\x2E\\d\\d\\d\\d"))
            {
            		dateField.setText(dateText);	
            }
            else
            {
            	JDialog dlg = new JDialog();
            	
                JOptionPane.showMessageDialog(dlg, "Bitte geben Sie das Datum im Format tt.mm.jjjj ein", "Hinweis", JOptionPane.ERROR_MESSAGE);
            	System.out.println("help!");
            	//dateField.grabFocus();
                dateField.selectAll();   
                flag=false;
            }            
        }
        return flag;
    }
}


HIER DER AUFRUF:
Code:
mJtfDateFrom.setInputVerifier(new InputDateVerifier());

DANKE
MFG
MIKE
 

foobar

Top Contributor
Wenn du bei FocusLost ein grabFoc machst kann das zu einem StackOverFlow führen. Ist doch klar ;-)

Hast du mal getraced?
 

Morpheus2100

Mitglied
foobar hat gesagt.:
Hast du mal getraced?

Watn das? Steht das nicht im Staktrace schon drinnen?
Im moment bekommt ich ja nicht mal nen staktrace!!! Er wirft mir einfach keine vernünftige ExceptioN!


DANKE
MFG
MIKE

Der Verifier wird immer dann aufgerufen wenn die Textkomponente den Fokus verliert. Du machst deine Prüfung und stellst fest - Fehler. Also JOptionPane. Dies führt dazu dass das Textfeld wieder den Fokus verliert ... und wieder und wieder und wieder ...
Könnte das der Fehler sein? Wenn, hab ich leider nicht verstanden wieso?
 

Wildcard

Top Contributor
Morpheus2100 hat gesagt.:
Der Verifier wird immer dann aufgerufen wenn die Textkomponente den Fokus verliert. Du machst deine Prüfung und stellst fest - Fehler. Also JOptionPane. Dies führt dazu dass das Textfeld wieder den Fokus verliert ... und wieder und wieder und wieder ...
Könnte das der Fehler sein? Wenn, hab ich leider nicht verstanden wieso?
Das sehe ich genauso. Deshalb bin ich auch der Meining das es ohne grabFocus funktionieren müsste.
Btw: einen JDialog zu instanzieren nur um ihn der OptionPane als Owner mitzugeben ist sinnlos.
 

SamHotte

Top Contributor
Tracen heißt, dass du im Debug-Modus dein Programm Schritt für Schritt ausführst, um das Auftreten des Fehlers genau bestimmen zu können. Falls du Eclipse benutzt, solltest du auf eine Anweisung kurz vor dem vermuteten Fehler einen Breakpoint setzen und dann anstelle von "Run as..." "Debug as..." ausführen.

Das Programm unterbricht dann am Breakpoint, und dann kannst du mit "Step into" bzw. "Step over" Schritt für Schritt sehen, was passiert.
 

Morpheus2100

Mitglied
SamHotte hat gesagt.:
Tracen heißt, dass du im Debug-Modus dein Programm Schritt für Schritt ausführst, um das Auftreten des Fehlers genau bestimmen zu können. Falls du Eclipse benutzt, solltest du auf eine Anweisung kurz vor dem vermuteten Fehler einen Breakpoint setzen und dann anstelle von "Run as..." "Debug as..." ausführen.

Das Programm unterbricht dann am Breakpoint, und dann kannst du mit "Step into" bzw. "Step over" Schritt für Schritt sehen, was passiert.

Ich hab doch nen Debug schon gemacht , und hab auch die Fehlermeldung vor einigen posts geschrieben!



Wildcard hat gesagt.:
Btw: einen JDialog zu instanzieren nur um ihn der OptionPane als Owner mitzugeben ist sinnlos.

Wie sonst?

DANKE
MFG
MIKE


LEIDER GEHTS IMMER NOCH NICHT UND ICH WEIS NICHT WIESO?
 

Morpheus2100

Mitglied
Wildcard hat gesagt.:
Morpheus2100 hat gesagt.:
Ich hab doch nen Debug schon gemacht , und hab auch die Fehlermeldung vor einigen posts geschrieben!
Dann müsstest du uns ja auch sagen können zwischen welchen Methoden er hin und her springt.

Er springt immer wieder in diese verify methode rein und gleich in den else Fall? Und das immer und immer wieder! Aber nur wenn ich das JOptionPane setze!

DANKE
MFG
MIKE
 

Wildcard

Top Contributor
Ist ja auch eigentlich klar. Die JOptionPane bekommt den Focus beim anzeigen -> focusLost wird aufgerufen -> JOptionPane bekommt wieder den Fokus usw...
Ich verstehe nur nicht so richtig warum das in Java5 funktionieren soll ???:L
 

Morpheus2100

Mitglied
Wildcard hat gesagt.:
Ist ja auch eigentlich klar. Die JOptionPane bekommt den Focus beim anzeigen -> focusLost wird aufgerufen -> JOptionPane bekommt wieder den Fokus usw...
Ich verstehe nur nicht so richtig warum das in Java5 funktionieren soll ???:L

Da sind wir schon zu zweit! ???:L
Is aber auch egal, weils unter 1.4 auch gehen muss!
Gibt es eigentlich ne alternative zu JOptionPane? :?:

DANKE
MFG
MIKE
 

Wildcard

Top Contributor
Natürlich gibt's eine Alternative, das bringt dir aber nichts, weil du bei einem FocusLost event nichts hochpoppen lassen darfst, weil das zirkulär wird. Du kannst versuchen über ein Flag festzustellen ob du schon auf das FocusLost reagiert hast oder nicht...
 
G

Guest

Gast
So erstmal danke für alles!

Hab das ganze jetzt einfach mit
Code:
dateField.setForeground(Color.RED);
                btn.setEnabled(false);

gelöst!
Erschien mir am einfachsten!

DANKE
MFG
MIKE
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C StackOverflow bei Rekursion Java Basics - Anfänger-Themen 7
K MergeSort Stackoverflow Java Basics - Anfänger-Themen 5
P Compiler-Fehler StackOverFlow Java Basics - Anfänger-Themen 4
C Klassen StackOverflow bei erster Nutzung von Klassen/Konstruktoren Java Basics - Anfänger-Themen 9
M StackOverflow Problem Java Basics - Anfänger-Themen 9
F Stackoverflow bei Quicksort Java Basics - Anfänger-Themen 2
L StackOverFlow, finde Grund nicht! Java Basics - Anfänger-Themen 5
O StackOverflow für Eingabewerte berechnen Java Basics - Anfänger-Themen 3
J Stackoverflow-Abbruchbedingung Java Basics - Anfänger-Themen 7
G StackOverflow Fehler Java Basics - Anfänger-Themen 3
Y stackoverflow fehler Java Basics - Anfänger-Themen 7
G Stackoverflow! Java Basics - Anfänger-Themen 14
S Stackoverflow Error Java Basics - Anfänger-Themen 5
G Parser liefert StackOverflow error Java Basics - Anfänger-Themen 6
C StackOverflow Error, objekte öfters erzeugen Java Basics - Anfänger-Themen 6
H Löschen in einem binären Baum führt zu einem StackOverflow Java Basics - Anfänger-Themen 2
P StackOverFlow - SocketTimeoutException Java Basics - Anfänger-Themen 12
frau-u StackOverflow - woher kommt es? Java Basics - Anfänger-Themen 7
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
nbergmann The type JOptionPane is not accessible. Java Basics - Anfänger-Themen 4
nbergmann Wo ist javax.swing.JOptionPane gespeichert? Java Basics - Anfänger-Themen 4
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
chocobear26 Interface JOptionPane - Dialog_Fenster zeigt immer vorherige Eingabe an. Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
M JOptionPane Fehler bei "Abbrechen" des Fensters Java Basics - Anfänger-Themen 10
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
Dawinartor Klassen Zeilenumbruch in JOptionPane.showMessageDialog Java Basics - Anfänger-Themen 8
N javax swing JOptionPane Hilfe Java Basics - Anfänger-Themen 3
T JOptionPane mit eigenem Icon Java Basics - Anfänger-Themen 4
C JOptionPane tritt manchmal bei Plugin in den Hintergrund Java Basics - Anfänger-Themen 2
das_leon JOptionPane Titel setzen Java Basics - Anfänger-Themen 1
J jOptionPane, Array und negative Zahlen Java Basics - Anfänger-Themen 2
B JOptionPane Java Basics - Anfänger-Themen 5
S JOptionPane mit Schleife in einem Ausgabefenster Java Basics - Anfänger-Themen 4
M jOptionPane mit if else Java Basics - Anfänger-Themen 16
K JOptionPane/catch/try/finally/if Java Basics - Anfänger-Themen 9
B JOptionPane Java Basics - Anfänger-Themen 4
N Erste Schritte JOptionPane - zerstörtes Layout Java Basics - Anfänger-Themen 2
D Erste Schritte JOptionPane Java Basics - Anfänger-Themen 7
S JOptionPane/Popup mit GUI Java Basics - Anfänger-Themen 2
R Fehler mit JOptionPane Java Basics - Anfänger-Themen 3
A Fehler bei der Speicherung von JOptionPane-Eingaben Java Basics - Anfänger-Themen 4
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
L Strings in einem JOptionPane farbig Java Basics - Anfänger-Themen 2
E JOptionPane.showMessageDialog Fehler Java Basics - Anfänger-Themen 1
R Text Pane Aktualisierung erst nach JOptionPane Java Basics - Anfänger-Themen 10
J while (eingabe == "0") eingabe = JOptionPane.showInputDialog("...") Java Basics - Anfänger-Themen 5
S Konsolenausgabe ales JOptionPane? Java Basics - Anfänger-Themen 5
Z Darstellungsfehler mit JOptionPane Java Basics - Anfänger-Themen 2
L Interface JOptionPane Umwandlung Java Basics - Anfänger-Themen 10
L Anderes Layout für JOptionPane? Java Basics - Anfänger-Themen 6
S JoptionPane mit Umbruch Java Basics - Anfänger-Themen 21
Eileen Brüche addieren in Zwei Klassen mit JOptionPane Java Basics - Anfänger-Themen 4
S JOptionPane.showMessageDialog Java Basics - Anfänger-Themen 20
M JOptionPane 2 Angaben in ein Dialogfeld Java Basics - Anfänger-Themen 7
H JOptionPane YES Option mit Folge? Java Basics - Anfänger-Themen 2
P Input/Output JOptionPane Fehlermeldung Catchen Java Basics - Anfänger-Themen 5
N Grafiken in JOptionPane Java Basics - Anfänger-Themen 3
T Benutzereingabe in form von string wieder ausgeben in JOptionPane Java Basics - Anfänger-Themen 14
B Codeschnipsel-Frage zu JOptionPane Java Basics - Anfänger-Themen 4
D Problem mit meinem ersten JOptionPane - Fatal exception occurred. Program will exit. Java Basics - Anfänger-Themen 6
H Focus auf Textfeld in JOptionPane Java Basics - Anfänger-Themen 2
J JOptionPane wiederholt aufrufen Java Basics - Anfänger-Themen 2
M JOptionPane null on closing with X Java Basics - Anfänger-Themen 6
M GUI JOptionPane - Parameter im Konstruktor festlegen? Java Basics - Anfänger-Themen 5
brunothg Internal JOptionPane Icon ändern Java Basics - Anfänger-Themen 5
J CLOSE in JOptionPane Java Basics - Anfänger-Themen 7
S JOptionPane Java Basics - Anfänger-Themen 29
F Alternative zu JoptionPane Java Basics - Anfänger-Themen 7
M Datentypen JOptionPane Java Basics - Anfänger-Themen 13
D JOptionPane ohne Klick-Aufforderung Java Basics - Anfänger-Themen 9
F jOptionPane (ConfirmDialog) aufrufen Java Basics - Anfänger-Themen 2
E JOptionPane Java Basics - Anfänger-Themen 11
J JOptionPane Datum Eingabe Java Basics - Anfänger-Themen 3
R JOptionPane funktioniert nicht mit Abbrechen Knopf Java Basics - Anfänger-Themen 16
H JOptionPane validieren Java Basics - Anfänger-Themen 3
D nur JOptionPane im Windows Style Java Basics - Anfänger-Themen 3
D Wählfenster(JOptionPane) Java Basics - Anfänger-Themen 3
N Hilfe!!! JOptionPane Java Basics - Anfänger-Themen 12
N javax.swing.JOptionPane einbauen? Java Basics - Anfänger-Themen 9
M Hilfe: JOptionPane.showInputDialog Java Basics - Anfänger-Themen 3
T JOptionPane mit .showInputDialog: Ergebnis abfragen? Java Basics - Anfänger-Themen 2
P JOptionPane.showInputDialog Java Basics - Anfänger-Themen 6
L ParentComponent von JOptionPane Java Basics - Anfänger-Themen 2
X JOptionPane.showMessageDialog(); - Import Befehl? Java Basics - Anfänger-Themen 4
C JOptionPane mit Icon Java Basics - Anfänger-Themen 5
G Problem mit JOptionPane. Java Basics - Anfänger-Themen 7
P JOptionPane mit Inhalt? Java Basics - Anfänger-Themen 2
M HTML in JOptionPane-Dialog aber keine Links Java Basics - Anfänger-Themen 6
A JOptionPane -> abbrechen -> NullPointerException Java Basics - Anfänger-Themen 4
M JOptionPane - Dialog Java Basics - Anfänger-Themen 6
C Problem mit JOptionPane.showInputDialog Java Basics - Anfänger-Themen 2
G Schleife mit JOptionPane Java Basics - Anfänger-Themen 6
C JOptionPane in Taskleiste anzeigen Java Basics - Anfänger-Themen 3
G JOptionPane.showInputDialog Java Basics - Anfänger-Themen 2
F JOptionPane selbst programmieren Java Basics - Anfänger-Themen 8
G Problem miT JOptionPane Java Basics - Anfänger-Themen 6
G JOptionPane.TOOL_TIP_TEXT_KEY wie verwendet man es? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben