Hallo Forum,
bei nachfolgenden Code wird eine NumberFormatException geworfen, kann mir da jemand auf die Sprünge helfen wieso. Mir ist das ziemlich rätselhaft. Hier die beteiligten Klassen(ja der ist noch nicht sauber
)
Klasse Gui:
Klasse Berechnungen:
Die Klasse Berechnungen soll (bisher) prüfen, ob eine Zahl in einer Reihe eines Sudokus doppelt vorkommt.
Meldung: NumberFormatException: For string input: "X ", wobei X hier eine Zahl ist.
MfG
bei nachfolgenden Code wird eine NumberFormatException geworfen, kann mir da jemand auf die Sprünge helfen wieso. Mir ist das ziemlich rätselhaft. Hier die beteiligten Klassen(ja der ist noch nicht sauber
Klasse Gui:
Java:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Gui extends JFrame{
JPanel oberflaeche = new JPanel(); //Hauptpanel
JPanel spielfeld = new JPanel(); //kommt auf das Hauptpanel
JPanel bedienfeld = new JPanel(); //kommt auf das Hauptpanel unter das Spielfeld
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
JTextField edtZahlen[][] = new JTextField[9][9]; //jeweils ein Textfeld kommt auf jeweils ein Zahlenfeld
//-----------------------------------------------------------------------------------------------------
BorderLayout layout = new BorderLayout();
GridLayout gamelayout = new GridLayout(9, 9);
//-----------------------------------------------------------------------Layouts----------
JButton kontrollieren = new JButton("kontrollieren");
JButton schliessen = new JButton("Schließen");
//---------------------------------------------------------------------------Buttons----------------------
public Gui()
{
ActionListener al = new ActionHandler(this);
setTitle("SudokuReader");
setSize(800, 800);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
oberflaeche.setLayout(layout);
bedienfeld.setLayout(new BorderLayout());
add(oberflaeche);
oberflaeche.add(bedienfeld,BorderLayout.SOUTH);
bedienfeld.add(kontrollieren,BorderLayout.WEST);
bedienfeld.add(schliessen,BorderLayout.EAST);
spielfeld.setLayout(gamelayout);
oberflaeche.add(spielfeld,BorderLayout.CENTER);
kontrollieren.addActionListener(al);
schliessen.addActionListener(al);
setResizable(false);
//-------------------------------------------------------------
//Erzeugung des kompletten Spielfeldes
for(int zeile = 0; zeile<9;zeile++){
for(int spalte = 0; spalte<9; spalte++){
edtZahlen[zeile][spalte] = new JTextField(2);
spielfeld.add(edtZahlen[zeile][spalte]);
edtZahlen[zeile][spalte].setText( zeile +" ");
}
}
//-----------------------------------------------------------
add(oberflaeche);
}
}
Klasse Berechnungen:
Java:
public class Berechnungen {
static int tempZahl;
static int tempElement;
static boolean isZeile = true;
static boolean isSpalte = true;
public static boolean pruefeZeilen(Gui fenster)
{
for(int zeile = 0; zeile < 9; zeile++){
for(int element = 0; element < 9; element++)
{
for(int spalte = 0; spalte < 9; spalte++)
{
try{tempZahl = Integer.parseInt(fenster.edtZahlen[zeile][spalte].getText());
tempElement = Integer.parseInt(fenster.edtZahlen[zeile][element].getText());
if(spalte != element && tempZahl==tempElement)
{isZeile = false;
System.out.println("Zeilen wahr: "+isZeile);
break;
}
else{
isZeile = true;
}
}catch(Exception e)
{
System.out.println(e); // Wieso wird hier was ausgegeben? Ich füll das Textfeld doch nur mit Zahlen :(
}
}
}
}
return isZeile;
}
}
Die Klasse Berechnungen soll (bisher) prüfen, ob eine Zahl in einer Reihe eines Sudokus doppelt vorkommt.
Meldung: NumberFormatException: For string input: "X ", wobei X hier eine Zahl ist.
MfG
Zuletzt bearbeitet von einem Moderator: