Reputation: 15
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
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