java - JFrame 中的 JTextFields 循环

标签 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());    
} 

最佳答案

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

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

关于java - JFrame 中的 JTextFields 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313880/

相关文章:

java - 一个简单的 Java GUI 界面

java - 为什么我必须使用 for 循环而不是 foreach 循环?

java - 从 HTML 中提取数据并格式化输出

java - 为什么从 main 读取非静态变量会出现问题?

java - JAVA和PHP AES加密之间的区别

Java 子字符串在字符串验证后中断

java - 行过滤器在单元格更新事件中无法按预期工作

java - 了解 Spring Security 中 permitAll() 和 anonymous() 的区别

c# - 如何限制 foreach 循环中迭代的元素数量?

c++ - 如何使用循环一次显示循环信息?功能问题