我正在使用Swing,我无法从保存在对象中的arrayList
中获取值,然后将其保存在hashMap
中。无法从保存在对象中的ArrayList中获取值,并且保存在哈希映射中的对象
system.out.println
打印任何值。
我的代码包含一个程序列表和参数列表。 点击添加参数按钮后的参数被添加到paramList
当附加程序按钮被点击从textfield
获取程序保存在procList
。从paramList
值保存在新的对象(对象包含ArrayList中的getter和setter)
的Hashmap
存储过程的名称为key
和对象为value
然后,我有另一种情况,其中我们点击程序列表上的GUI,那么我们取选定程序名,
选定程序名可作为重点从HashMap中提取值。 我们使用key从hashmap中获取参数的数组列表。
但是当我试图在GUI然后它是空白的显示,然后我试图查看是否值是有使用System.out.println和从印刷:-(
问题没有值与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);
}
控制台输出
[p_csacas]
[scasca, ascacasc, ascacs]
{[email protected]}
[p_csacas, f_ascasc]
[rrrrrr]
{[email protected], [email protected]}
MouseClickEvent , procedure is p_csacas
[]
所以我们可以看到在添加过程中的值有两个列表,也ANS在HashMap中 但同时获取关于在GUI列表点击鼠标,输出来的空白。作为给定的GUI的
请帮我这个:-(