S
SnookerStar
Gast
Hallo an alle,
und zwar hab ich folgendes Problem: Meine Oberfläche enthält 9 mal 9 JTextFields, die in einem Array gespeichert sind und von dennen jedes einzelne überprüft werden soll, ob es ein Inhalt hat. Sollte ein Leeres gefunden sein, dann wird die weitere Suche abgebrochen. Jedoch bekomm ich, sobald ein JTextField wirklich leer ist, eine NumberFormatException! Ich hab auch schon probiert außerhalb der Schleife direkt beim ActionListener auf das JTextField[0][0] mit .getText() zuzugreifen und diese mit ## if (temp.length()==0)System.out.println("klappt"); ## probiert, was mir komischer aber auch erfreulicher Weise keine Excetpion ausgegeben hat. Jedoch ruf ich in dem AktionListener zuerst eine andere Methode auf, die wiederrum die aktuelle Methode sucheErstesFreiesFeld aufruft, in der die Exception auftritt. Ich durchlaufe zwei Schleifen, um das 2 dimensionale Array komplett zu durchlaufen! Dann wird der Text aus dem Array in der Variable temp gespeichert. (Diesen Umweg bzw. das +"" habe ich Testweise gemacht, um so vllt der Exception zu entgehen - leider erfolglos) Dann wird zum Test ein println gemacht: Dieser wird nicht ausgedruckt!! (Fehler sollte daher vorher passieren) Die Breaks und der Boolean Wert sind dafür da, um beide Schleifen verlassen zu können! Hier aber mal die Methode:
Und hier die Exception:
Man sollte AUCH noch hinzufügen, dass wenn ich nicht das ersteFreieFeld suchen will, sondern das erste Feld, in dem eine 0 steht, dann funktioniert die Methode einwandfrei (Dann sind aber keine Leeren JTextFields vorhanden)!! Die Exception wird jeglich dann ausgeschmissen, wenn auf ein Leeres JTextField zugegriffen wird.
Das war soweit das ganze Problem, für das ich bis jetzt keine Lösung gefunden habe!
Ich hoffe, dass mir jemand helfen kann und bedanke mich schon mal im Vorraus!!!
MfG Simon | SnookerStar
und zwar hab ich folgendes Problem: Meine Oberfläche enthält 9 mal 9 JTextFields, die in einem Array gespeichert sind und von dennen jedes einzelne überprüft werden soll, ob es ein Inhalt hat. Sollte ein Leeres gefunden sein, dann wird die weitere Suche abgebrochen. Jedoch bekomm ich, sobald ein JTextField wirklich leer ist, eine NumberFormatException! Ich hab auch schon probiert außerhalb der Schleife direkt beim ActionListener auf das JTextField[0][0] mit .getText() zuzugreifen und diese mit ## if (temp.length()==0)System.out.println("klappt"); ## probiert, was mir komischer aber auch erfreulicher Weise keine Excetpion ausgegeben hat. Jedoch ruf ich in dem AktionListener zuerst eine andere Methode auf, die wiederrum die aktuelle Methode sucheErstesFreiesFeld aufruft, in der die Exception auftritt. Ich durchlaufe zwei Schleifen, um das 2 dimensionale Array komplett zu durchlaufen! Dann wird der Text aus dem Array in der Variable temp gespeichert. (Diesen Umweg bzw. das +"" habe ich Testweise gemacht, um so vllt der Exception zu entgehen - leider erfolglos) Dann wird zum Test ein println gemacht: Dieser wird nicht ausgedruckt!! (Fehler sollte daher vorher passieren) Die Breaks und der Boolean Wert sind dafür da, um beide Schleifen verlassen zu können! Hier aber mal die Methode:
Code:
private void sucheErstesFreiesFeld(){
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
String temp=tfZahlen[i][j].getText()+"";
System.out.println(temp+"nur zum schauen ob die Exception vorher passiert oder danach");
if (temp.length()==0){
erstesFreiesFeldX=j;
erstesFreiesFeldY=i;
durchBreakVerlassen=true;
break;
}
}
if(durchBreakVerlassen==true){
durchBreakVerlassen=false;
break;
}
}
System.out.println(erstesFreiesFeldX+" X");
System.out.println(erstesFreiesFeldY+" Y");
}
Und hier die Exception:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Oberflaeche.leseSudokuAus(Oberflaeche.java:115)
at Oberflaeche.access$0(Oberflaeche.java:112)
at Oberflaeche$MenuAktion.actionPerformed(Oberflaeche.java:60)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Man sollte AUCH noch hinzufügen, dass wenn ich nicht das ersteFreieFeld suchen will, sondern das erste Feld, in dem eine 0 steht, dann funktioniert die Methode einwandfrei (Dann sind aber keine Leeren JTextFields vorhanden)!! Die Exception wird jeglich dann ausgeschmissen, wenn auf ein Leeres JTextField zugegriffen wird.
Das war soweit das ganze Problem, für das ich bis jetzt keine Lösung gefunden habe!
Ich hoffe, dass mir jemand helfen kann und bedanke mich schon mal im Vorraus!!!
MfG Simon | SnookerStar