0

我的程序问用户:你完成了多少门课程?因此,用户必须在 JTextField 组件上输入已完成的课程数量。然后,我的程序将 JTextField 中输入的字符串转换为整数。当我运行我的程序时,我得到一个 numberformatException。我尝试调试,我注意到我的程序在用户可以编写任何内容之前将字符串转换为整数。该程序不会等待用户输入任何内容。我怎样才能让我的程序在继续执行代码之前等待用户输入一个数字?

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);

}
4

1 回答 1

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");
}
于 2013-04-19T20:43:38.580 回答