Java 无法从保存在对象中的ArrayList和保存在HashMap中的对象中获取值

Java 无法从保存在对象中的ArrayList和保存在HashMap中的对象中获取值,java,swing,Java,Swing,我正在处理Swing,无法从保存在对象中的arrayList中获取值,然后将其保存在hashMap中 system.out.println不打印任何值 我的代码包含一个过程列表和一个参数列表。 单击添加参数按钮后,参数将添加到paramList 单击添加过程按钮时,从textfield获取的过程保存在procList中 paramList中的值保存在新对象中(对象包含带有getter和setter的arraylist) Hashmap将过程名称存储为key,将对象存储为value 然后,我有另一

我正在处理Swing,无法从保存在对象中的
arrayList
中获取值,然后将其保存在
hashMap

system.out.println
不打印任何值

我的代码包含一个过程列表和一个参数列表。 单击添加参数按钮后,参数将添加到
paramList

单击添加过程按钮时,从
textfield
获取的过程保存在
procList

paramList
中的值保存在新对象中(对象包含带有getter和setter的arraylist)

Hashmap
将过程名称存储为
key
,将对象存储为
value

然后,我有另一个事件,我们单击GUI上的过程列表,然后获取所选的过程名称

所选过程名可用作从HashMap获取值的键。 我们使用键从hashmap获得参数数组列表

但是当我尝试在GUI中显示时,它是空白的,然后我尝试使用System.out.println查看值是否存在,而printed中没有值:-(

问题在于
private void getParameterList

这是代码

//variable declaration
 String procedureName;
 String parameterName;
 ArrayList<String> procList = new ArrayList<>();
 ArrayList<String> paramList = new ArrayList<>();
 HashMap<String,ParamListPojo> procMapper = new HashMap<>();

private void Button_addParameterActionPerformed(java.awt.event.ActionEvent evt) {                                                    
       parameterName = paramField.getText();
       paramList.add(parameterName);
       //System.out.println(paramList);

       DefaultListModel paramListModel = new DefaultListModel();
       //populating DefaultListModel for parameters
        Iterator<String> it2 = paramList.iterator();
        while(it2.hasNext()){
            paramListModel.addElement(it2.next()); 
        }

        //populating parameterList
        parameterList.setModel(paramListModel); 
        paramField.setText(""); 
    }     

private void button_addProcedureActionPerformed(java.awt.event.ActionEvent evt) {                                                    
        //procedureName = level_funcPrefix.getText() +procedureField.getText();
        ParamListPojo paramListPojo = new ParamListPojo();
        procList.add(procedureName);

        //Storing procedures and parameters in MAP
        paramListPojo.setParamList(paramList); 
        procMapper.put(procedureName,paramListPojo);
        System.out.println(procList);
        System.out.println(paramList);
        System.out.println(procMapper);

        procedureField.setText("");

         DefaultListModel procListModel  = new DefaultListModel();
         DefaultListModel paramListModel = new DefaultListModel();

         // populating DefaultListModel for procedureList
         Iterator<String> it1 = procList.iterator();
         while(it1.hasNext()){
             procListModel.addElement(it1.next());
         }

        //populating DefaultListModel for parameters
        Iterator<String> it2 = paramList.iterator();
        while(it2.hasNext()){
            paramListModel.addElement(it2.next()); 
        }

        // populating procedureList 
        procedureList.setModel(procListModel);
        procedureList.setSelectedIndex(procList.size()-1);

        //populating parameterList
        parameterList.setModel(paramListModel); 
        paramList.clear();
    }  

// populate Parameter List on GUI when procedure is selected 
    private void getParameterList(java.awt.event.MouseEvent evt) {                                  

        String procedure = procedureList.getSelectedValue();
        System.out.println("MouseClickEvent , procedure is "+procedure);

        //ParamListPojo prjL = new ParamListPojo();
        ParamListPojo prjL = procMapper.get(procedure);
        paramList = prjL.getParamList();

        System.out.println(paramList);
        //Declaring DefaultListModel for parameters
        DefaultListModel paramListModel = new DefaultListModel();

        Iterator<String> it = paramList.iterator();
        while(it.hasNext()){
            String parameter = it.next();
            paramListModel.addElement(parameter); 
            System.out.println(parameter);
        }
因此,我们可以看到,在添加过程时,两个值都在列表中,ans也在HashMAP中 但是,当在GUI中通过鼠标点击列表获取时,输出是空白的

GUI的示例图像如下所示

请帮我解决这个问题:-(

问题解决了。 问题在于
ParamListPojo
类中arrayList的setter方法

public void setParamList(ArrayList<String> procList) {
        //this.prmList = procList;
                prmList.addAll(procList);
    }
public void setParamList(ArrayList procList){
//this.prmList=procList;
prmList.addAll(procList);
}
以前我使用的是
this.prmList=procList
现在我使用的是
prmList.addAll(procList);

public void setParamList(ArrayList<String> procList) {
        //this.prmList = procList;
                prmList.addAll(procList);
    }