2015-08-31 24 views
0

         我有一个简单的JForm,它有一些文本字段。问题是,我的评估()的getText()被执行。我困在这里。帮助会很好。这是代码。而且,这里是程序的屏幕捕获:https://www.dropbox.com/s/w5ie4dfnc9wi216/Capture.JPG?dl=0
在JFrame中循环的JTextFields

public MAppGest() { 
    initComponents(); 
} 

public double a=2.6; 
public double index0; 
public Iterator itr; 

public void getText(String ind, String inde){ 
    evaluate(); 
    index0=Double.parseDouble(txtNewIndex.getText())-Double.parseDouble(txtOldIndex.getText()); 
    txtTotalIndex.setText(Double.toString(index0)); 
    txtRoom1.setText(Double.toString(index0)); 
    txtTotal1.setText(Double.toString((index0*a))); 
} 

public void evaluate(){ 
    if(Boolean.valueOf(txtNewIndex.getText())&&Boolean.valueOf(txtOldIndex.getText())==true){ 
     getArray(); 
    } 
    else if(Boolean.valueOf(txtNewIndex2.getText())&&Boolean.valueOf(txtOldIndex2.getText())==true){ 
     getArray(); 
    } 
    else if(Boolean.valueOf(txtNewIndex3.getText())&&Boolean.valueOf(txtOldIndex3.getText())==true){ 
     getArray(); 
    } 
    else if(Boolean.valueOf(txtOldIndex4.getText())&&Boolean.valueOf(txOldIndex4.getText())==true){ 
     getArray(); 
    } 
    else if(Boolean.valueOf(txtNewIndex5.getText())&&Boolean.valueOf(txtOldIndex5.getTex())==true){ 
     getArray(); 
    } 
    else{ 
     JOptionPane.showMessageDialog(MAppGest.this,"An error occured"); 
    } 
} 

public void getArray() { 
    ArrayList<String> al=new ArrayList<>(); 
    al.add(txtNewIndex.getText()); 
    al.add(txtOldIndex.getText()); 
    al.add(txtNewIndex2.getText()); 
    al.add(txtOldIndex2.getText()); 
    al.add(txtNewIndex3.getText()); 
    al.add(txtOldIndex3.getText()); 
    al.add(txtOldIndex4.getText()); 
    al.add(txOldIndex4.getText()); 
    al.add(txtNewIndex5.getText()); 
    al.add(txtOldIndex5.getText()); 

    for (int i = 0; i< al.size(); i++) { 
     String fields []=null; 
     fields[i] = al.get(i); 
    } 
} 


private void btnGrandTotalActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here: 
    getText(txtNewIndex.getText(),txtOldIndex.getText()); 
    getText(txtNewIndex2.getText(),txtOldIndex2.getText()); 
    getText(txtNewIndex3.getText(),txtOldIndex3.getText()); 
    getText(txtOldIndex4.getText(),txOldIndex4.getText()); 
    getText(txtNewIndex5.getText(),txtOldIndex5.getText());  
} 
+1

[Boolean.valueOf](http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html#valueOf(java.lang.String)) – BeyelerStudios

+1

1)更好的帮助更快地发布[MCVE]或[简短,独立,正确的示例](http://www.sscce.org/)。 2)*“我有一个简单的JForm,它有一些文本字段”*您有问题吗?还要注意,它们不是'JForm'类,请停止像您的IDE那样讲话并为J2SE类使用正确的名称。 –

+0

好的,当我发布时,我会记住这一点。我想我找到了我的错误。我的评估方法没有做它应该做的事情。 –

回答

2

如果你的问题是:evaluate()只完成第一if说法,那是因为你正在使用if-else语句时,你只想用if。如果您使用if-else,则一旦第一个if被验证为真,它将跳过其余部分。如果我的答案不是你要找的,那么我建议你ask a better question。就像评论中所说的那样,给予一个SSCCE,这样回答者就不会被猜测。

附注:Boolean.valueOf()返回一个布尔值,所以你的==true是不必要的。