在JFrame

时间:2015-08-31 14:40:11

标签: java swing loops arraylist jtextfield

我有一个简单的JForm,它有一些文本字段。问题是,我的evaluate()方法没有像我预期的那样在文本字段中循环。我得到的是getText()的第一个文本字段,它们被执行。我陷入了困境。帮助会很棒。这是代码。此处还有一个程序的屏幕截图:https://www.dropbox.com/s/w5ie4dfnc9wi216/Capture.JPG?dl=0

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 个答案:

答案 0 :(得分:2)

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

附注:Boolean.valueOf()返回布尔值,因此您的==true是不必要的。