【问题标题】:How can I reset JTextField.......?如何重置 JTextField.......?
【发布时间】:2013-08-13 06:07:40
【问题描述】:

我使用下面的 pgm 将详细信息保存在地址簿上。我想检查提交的 mob 是否为 int。它会在第一次正确执行(如果我在 mob 字段中输入字母,它将不会保存)。但是从第二次开始,即使我在暴民文件中输入了一个字母,它也会保存。 mob 将存储先前的值。第一次执行后如何清除暴民存档.....

 public void savePerson() {  
    name   =   jtfName.getText();
    name   =   name.toUpperCase();  
    jtfName.setText(name);
    address = jtfAddress.getText();

    try {
        landline = Integer.parseInt(""+jtfLandline.getText());
    } catch(Exception e) {          
    }

    try {           
       mob = Integer.parseInt(""+jtfmob.getText());     
    }catch(Exception e) {
    }

    email   = jtfEmail.getText();
   if(name.equals("")) {
        JOptionPane.showMessageDialog(null, "Please enter person name.");           
   } else if(mob == 0) {
        JOptionPane.showMessageDialog(null, "Please enter Mobile Number.");
   } else {
          //create a PersonInfo object and pass it to PersonDAO to save it
          PersonInfo person = new PersonInfo(name, address, landline, mob , email);
          pDAO.savePerson(person);
          JOptionPane.showMessageDialog(null, "Person Saved");            
          clear();         
   }
 }

【问题讨论】:

    标签: java swing jframe jtextfield


    【解决方案1】:

    试试这个,

    第一次迭代结束后,通过如下设置重置您的文本字段

    jtfmob.setText("");
    

    要单独获取数字输入,请尝试以下代码

    jtfmob = new JFormattedTextField(NumberFormat.getInstance());
    

    【讨论】:

    • 我怎样才能为固定电话添加验证,只有当我在该字段中输入了一个值时才应该这样做。否则不需要验证
    【解决方案2】:

    在下次执行之前使用方法jtfmob.setText(""),然后编写你的完整逻辑。

    【讨论】:

      【解决方案3】:

      这是一个非常明显的例子。 当您第一次解析 jtfmob 文本字段时,它会在其中查找值。如果该值不是整数,则根本不会被解析,您将得到空值。但是,如果该值是整数,您将毫无问题地继续进行。

      mob = Integer.parseInt(""+jtfmob.getText());
      

      mob 将包含整数数据类型的解析值。但是下次当您在文本字段中输入字母时,它将无法解析并因此导致异常(您正在成功捕获)。程序的控制权将转移到 catch 块而不更新整数类型变量 mob 的值。所以 mob 将包含 OLD 值(因为值不会因为异常而更新),并且在这种情况下你会得到相同的值。

      要解决这个问题,要么在 catch 块中显示一些消息以输入正确的值,要么自己找到其他方法

      【讨论】:

        【解决方案4】:

        在您的构造函数中使用以下内容。

        jTextField1.setText("");
        

        它会在您每次单击按钮之前重置您的值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-08
          • 2021-02-21
          • 2013-04-19
          • 2019-03-22
          • 2016-03-16
          • 1970-01-01
          相关资源
          最近更新 更多