Button不允许我将数据添加到ArrayList中 - Java

时间:2017-04-25 03:55:20

标签: java arraylist

我正在尝试将3个不同的Jtextfield发送到ArrayList,但是我收到错误:

"forms" cannot be resolved in this line: forms.add(form);

以下是发送数据的整个按钮代码:

// button add
    btnAdd.addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent e) {

            Product form = new Product();
            form.date = textDate.getText();
            form.fac = textFac.getText();
            form.total = Long.parseLong(textTotal.getText());
            forms.add(form);
        }
    });

ArrayList被称为“表单”:

 package dao;


     import entities.*;
     import java.util.*;
     import javax.swing.JTextField;
     import java.text.*;
      import javaapplication1.*;

     public class ProductModel{

   public List<Product> findAll(){
       try {
           List<Product> forms = new ArrayList<Product>();
           JTextField textDate;
           JTextField textFecha;
           JTextField textTotal;
           return forms;
         } catch (Exception e){
             return null;
         }
       }

   }

所以,我真的不知道为什么forms.add(form);不起作用。我确实有import thePackageOfthearraylist.*;,但我仍然不知道为什么它不起作用。

2 个答案:

答案 0 :(得分:0)

您必须创建java.util.ArrayList类型的表单变量。将此变量设为全局变量或局部变量,并使用ProductModel.finalAll方法对其进行初始化。

List<Product> forms=new ArrayList<Product>();
// button add
    btnAdd.addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent e) {

            Product form = new Product();
            form.date = textDate.getText();
            form.fac = textFac.getText();
            form.total = Long.parseLong(textTotal.getText());
            forms.add(form);
        }
    });

全局意味着在类级别,本地意味着在方法

中创建的变量

答案 1 :(得分:0)

要在actionPerformed方法中使用arraylist“forms”,必须在actionPerformed方法的本地范围内定义和初始化列表,或者在包含actionPerformed方法的类的全局范围中定义该列表。