java - ActionPerformed 和 ActionListener

标签 java swing awt jtextfield parseint

我的程序询问用户:您完成了多少门类(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/

相关文章:

java - MyEclipse Web 项目 : deployment assembly

java - JTable打印不打印页眉页脚

Java 容器删除方法无法正常工作

java - 如何在没有 Java 图形的情况下获取文本前进(stringWidth)?

Java Applet 到 BufferedImage

java - Netbeans-NoSuchElementException

java - libgdx 制作触摸事件

java - 自定义渲染器后 JTable 列不可编辑

java - 未调用 paintComponent

java - fragment 布局中的 MapView(android maps api v2)不显示