ActionPerformed和ActionListener

时间:2013-04-19 20:40:38

标签: java swing awt jtextfield parseint

我的程序询问用户:您完成了多少课程?因此,用户必须输入在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);

}

1 个答案:

答案 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");
}