使用JFrame的JAVA贷款计算器的异常?
我想如果我能排除程序在运行时给我的一些异常,我几乎就成功了。以下是我的代码:使用JFrame的JAVA贷款计算器的异常?,java,swing,exception,jframe,calculator,Java,Swing,Exception,Jframe,Calculator,我想如果我能排除程序在运行时给我的一些异常,我几乎就成功了。以下是我的代码: package RandomMathGame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class RandomMathGame { public static void main(String[] args) { RandomP
package RandomMathGame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class RandomMathGame {
public static void main(String[] args) {
RandomProblemGenerator randomProblems = new RandomProblemGenerator(10);
final int numberProblems = 10;
int correctScore = 0;
JPanel panel = new JPanel();
int answer;
int correctAnswer;
JLabel[] mathProblems = new JLabel[numberProblems];
final JTextField[] mathAnswers = new JTextField[numberProblems];
JLabel[] correctYesNo = new JLabel[numberProblems];
final JLabel score = new JLabel(correctScore + "/10");
JButton submit = new JButton("Submit");
for (int i = 1; i <= numberProblems; i++)
{
final int X = randomProblems.createNumberX();
final int Y = randomProblems.createNumberY();
mathProblems[i] = new JLabel("" + X + " * " + Y + " = ");
mathAnswers[i] = new JTextField();
answer = Integer.parseInt(mathAnswers[i].getText());
correctAnswer = X * Y;
if (answer == correctAnswer)
{
correctYesNo[i] = new JLabel("Correct answer; good job!");
correctScore = correctScore + 1;
}
else
{
correctYesNo[i] = new JLabel("Incorrect answer; try again!");
}
panel.add(mathProblems[i]);
panel.add(mathAnswers[i]);
panel.add(correctYesNo[i]);
}
final int temp = correctScore;
submit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
score.setText("Score: " + temp + "/10");
}
});
panel.add(submit);
panel.add(score);
JFrame gameFrame = new JFrame();
gameFrame.setTitle("Random Math Game");
gameFrame.setSize(150, 150);
gameFrame.setVisible(true);
gameFrame.setContentPane(panel);
}
}
我的时间紧迫,任何帮助都将不胜感激
answer = Integer.parseInt(mathAnswers[i].getText());
是什么导致了这个错误。这是因为您的一个文本字段为空。在接受用户输入之前进行一些验证,除非您希望应用程序出错
String answerStr = mathAnswers[i].getText();
if(answerStr.isEmpty()){
correctYesNo[i] = new JLabel("Not a valid answer/answer field empty!");
} else {
answer = Integer.parseInt(answerStr);
correctAnswer = X * Y;
//Rest of your code goes here
}
是什么导致了这个错误。这是因为您的一个文本字段为空。在接受用户输入之前进行一些验证,除非您希望应用程序出错
String answerStr = mathAnswers[i].getText();
if(answerStr.isEmpty()){
correctYesNo[i] = new JLabel("Not a valid answer/answer field empty!");
} else {
answer = Integer.parseInt(answerStr);
correctAnswer = X * Y;
//Rest of your code goes here
}
希望这对你有帮助
希望这对你有帮助 您正试图从刚创建的空白字段中获取
mathAnswers[i] = new JTextField();
answer = Integer.parseInt(mathAnswers[i].getText());
所以在这里,你只是从错误的地方检查。
似乎在第一步中,您希望创建文本字段,第二行应该在其他事件中出现
希望它能帮助您从您刚刚创建的空白字段中获取信息
mathAnswers[i] = new JTextField();
answer = Integer.parseInt(mathAnswers[i].getText());
所以在这里,你只是从错误的地方检查。
似乎在第一步中,您希望创建文本字段,第二行应该在其他事件中出现
希望它能帮助我克服那个例外。谢谢。@Commandrix这就是你看到的吗?如果这解决了你的问题,接受答案。让我通过了那个例外。谢谢。@Commandrix这就是你看到的吗?如果这解决了你的问题,接受答案。