私は表示のためにJTextFields
(gridArray
)の配列を使用し、実際の解決のためにint
の配列(sudokuGrid
)を使用するGUI Sudokuソルバで遊んでいます。このJavaコードがNumberFormatExceptionをスローするのはなぜですか?
java.lang.NumberFormatException: For input string: ""
ここで私のトラブルを引き起こしているコードのセクションがあります:私はそれを実行し、それがint
秒にJTextField
string
秒をキャストしようとすると、それは、int
秒にstring
Sを解析する上で、特にこのメッセージをNumberFormatException
をスローします:
// create solveButton
solveButton = new JButton("Solve It!");
solveButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
// create grid and call Solve()
for(int i=0;i<9;i++) {
for(int j=0;j<9;j++) {
if (gridArray[i][j].getText() == "")
{sudokuGrid[i][j] = 0;}
else {sudokuGrid[i][j] = Integer.parseInt(gridArray[i][j].getText());}
}
} // end for loop
Solver(sudokuGrid);
// display solution
for(int i=0;i<9;i++) {
for(int j=0;j<9;j++) {
gridArray[i][j].setText(String.valueOf(sudokuGrid[i][j]));
}
} // end for loop
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(mainFrame,e.toString(),"Number Format Exception",JOptionPane.ERROR_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(mainFrame,"Sorry, something broke, try again.","Solve Error",JOptionPane.ERROR_MESSAGE);
} // end try-catch
} // end actionPerformed()
}); // end solveButton ActionListener
私はif
と思った - 値の存在があった場合else
は空のフィールドをキャッチし、唯一parseInt
をしようとするだろうが、誰も私を啓発することができる場合、私は」それを感謝します。
あなたの問題を解決した答えを受け入れるべきです。 – Laf