我的程序询问用户:您完成了多少课程?因此,用户必须输入在JTextField组件上完成的课程数。然后我的程序将在JTextField中输入的String转换为Integer。当我运行我的程序时,我得到一个numberformatException。我试过调试,我注意到我的程序在用户可以写任何东西之前将String转换为Integer。程序不会等待用户输入任何内容。我怎样才能让我的程序在继续执行代码之前等待用户输入数字?
public class content extends JPanel implements ActionListener
{
String number = "";
JTextField NumtextField = new JTextField(5);
@Override
public void actionPerformed(ActionEvent e)
{
number = NumtextField.getNumtextField().getText();
}
int size = Integer.parseInt(number);
}
答案 0 :(得分:1)
将int size = Integer.parseInt(number);
移到actionPerformed:
public void actionPerformed(ActionEvent e){
number = NumtextField.getNumtextField().getText();
int size = Integer.parseInt(number);
}
当程序启动时,它试图解析""
,这不是一个有效的数字字符串,因此你得到一个例外。
也许你应该把它放在try {} catch {}块中,所以如果你实时得到一个例外,你可以处理它:
try {
int size = Integer.parseInt(number);
}
catch (NumberFormatException e) {
System.out.println("Thats not a valid number");
}