我的程序询问用户:您完成了多少门类(class)?因此,用户必须在 JTextField 组件上输入完成的类(class)数。然后,我的程序将 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);
}
最佳答案
将 int size = Integer.parseInt(number);
移至 actionPerformed 内:
public void actionPerformed(ActionEvent e){
number = NumtextField.getNumtextField().getText();
int size = Integer.parseInt(number);
}
当程序启动时,它会尝试解析 ""
,这不是有效的数字字符串,因此您会收到异常。
另外,也许您应该将其放入 try{}catch{} block 中,这样万一您实时遇到异常,您可以处理它:
try {
int size = Integer.parseInt(number);
}
catch (NumberFormatException e) {
System.out.println("Thats not a valid number");
}
关于java - ActionPerformed 和 ActionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16113148/