【问题标题】:am having validation form for my textfields我的文本字段有验证表
【发布时间】:2013-03-15 09:14:38
【问题描述】:

代码不检查文本字段是否为空 //该按钮计算您对 cat1、cat2、exam 的输入,并给出平均值和总数

btnCompute_1 = new JButton("COMPUTE");
btnCompute_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
    String a=cat1.getText().toString();
    String b=textcat_2.getText().toString();
    String c=textExam.getText().toString();
    //String[] results=new String[2];
    int catMark1,catMark2,Average,Exam,Total;
    catMark1=Integer.parseInt(a);
    catMark2=Integer.parseInt(b);
    Exam=Integer.parseInt(c);
    Average=((catMark1+catMark2)/2);
    Total=(Average+Exam);
    System.out.println("aver:" +Average +" tot:" +Total +" cat1:" +catMark1+" cat2" +catMark2);

    textAverage.setText("Average:"  +String.format("%d",Average));
    textTotal.setText("Total:"  +String.format("%d",Total));
    if(cat1.getText().equals(null)){
       JOptionPane.showMessageDialog(null,"Cat 1 marks are missing", "Error", 
       JOptionPane.ERROR_MESSAGE);
       }
     }
});

【问题讨论】:

  • 请更好地格式化这个问题
  • 在进行计算之前检查是否有 !a.trim().isEmpty()。同样,对于其他领域也是如此。您可能还需要确保输入的值是数字。

标签: java swing numbers jtextfield parseint


【解决方案1】:
btnCompute_1 = new JButton("COMPUTE");
btnCompute_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
    String a=cat1.getText().toString();
    String b=textcat_2.getText().toString();
    String c=textExam.getText().toString();
   //String[] results=new String[2];
   int catMark1,catMark2,Average,Exam,Total;
   catMark1=Integer.parseInt(a);
   catMark2=Integer.parseInt(b);
   Exam=Integer.parseInt(c);
   Average=((catMark1+catMark2)/2);
   Total=(Average+Exam);
   System.out.println("aver:" +Average +" tot:" +Total +" cat1:" +catMark1+" cat2" +catMark2);

   textAverage.setText("Average:"  +String.format("%d",Average));
   textTotal.setText("Total:"  +String.format("%d",Total));
   if(cat1.getText != null && cat1.getText.length() > 0){ //check this 
        JOptionPane.showMessageDialog(null,"Cat 1 marks are missing", "Error",        JOptionPane.ERROR_MESSAGE);
   }
}
});

【讨论】:

    【解决方案2】:
    String a=cat1.getText(); // getText() is often a String; no need to toString it
    
    if(a == null || a.length() == 0) {
        // error
    }
    else {
        try {
            catMark1=Integer.parseInt(a);
        }
        catch(NumberFormatException nfe) {
        {
            // could not parse
        }
    }
    

    您可以清理订单(这仅用于说明目的)

    【讨论】:

    • 试试这个 if(catMark1.gettext.length==0 || catMark2.gettext.length==0){ JOptionpane.showMessageDialogue(null, "您没有在其中一个文本字段中输入值")}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多