Java ActionPerformed和ActionListener

Java ActionPerformed和ActionListener,java,swing,awt,jtextfield,parseint,Java,Swing,Awt,Jtextfield,Parseint,我的程序问用户:你完成了多少课程?因此,用户必须输入JTextField组件上完成的课程数。然后,我的程序将在JTextField中输入的字符串转换为整数。当我运行我的程序时,我得到一个numberformatException。我试着调试,我注意到我的程序在用户写任何东西之前将字符串转换成整数。程序不会等待用户键入任何内容。如何使程序在继续执行代码之前等待用户输入数字 public class content extends JPanel implements ActionListener {

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

}

Move
int size=Integer.parseInt(数字)执行的内部操作:

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

它解决了错误问题,但我的程序仍然在没有用户输入的情况下运行,因为它不会等待用户输入完成课程的数量。如何使程序等待?
但是我的程序仍然在没有用户输入的情况下运行
==使用
JOptionPane
和使用
JFormattedTextField
而不是解析普通
JTextField
@mKorbel中的任何内容。如何使程序等待用户输入数字,然后再继续操作?@Pierre事件只应在其所连接的对象触发ActionEvent时发生,你说等待用户输入是什么意思?@MrD事实上,我的程序接受用户的输入(在JTextField中输入的数字)并进行一些计算。因此,如果我的代码不等待用户的编号,那么它是在计算时没有编号的。至于你的问题:你正在展示的代码片段并不能解释你所描述的问题——展示一个演示问题的SSCCE。