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