Crazy Word
Crazy Word

Reputation: 15

JTextFields looping in JFrame

   I have a simple JForm that has some text fields.The problem is, my evaluate() method is not cycling through the text fields as I expected.All I get is the first text fields, of getText() that are executed. I'm stuck in this. Help would be great. Here is the code. Also here is a screen capture of the program: 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());    
} 

Upvotes: 0

Views: 77

Answers (1)

17slim
17slim

Reputation: 1233

If your problem is that evaluate() is only completing the first if statement, it's because you are using if-else statements when you want to just use if. If you use if-else, once the first if is verified true it will skip the rest. If my answer is not what you are looking for, then I advise you to ask a better question. Like the comments have said, give an SSCCE so the answerers aren't left guessing.

A side note: Boolean.valueOf() returns a boolean, so your ==true is unnecessary.

Upvotes: 2

Related Questions