Ich arbeite an Swing und kann den Wert arrayList
nicht abrufen, der in einem Objekt gespeichert ist, das dann in einem hashMap
gespeichert wird.Wert kann nicht aus ArrayList abgerufen werden, das in einem Objekt gespeichert ist, und in einer HashMap gespeichertes Objekt
system.out.println
druckt keine Werte.
Mein Code enthält eine Prozedurliste und eine Parameterliste. auf die Add Parameter Taste Nach einem Klick die Parameter paramList
ist
Wenn add Prozedur Taste, um die Prozedur geholt von textfield
geklickt werden eingebaut in procList
gespeichert wird.
Werte von paramList
werden in neuem Objekt gespeichert (Objekt enthält Arraylist mit Getter und Setter)
Die Hashmap
speichert die Prozedur Namen wie key
und das Objekt als value
Dann habe ich ein anderes Ereignis, wo Wir klicken auf Prozedur Liste auf GUI, dann holen wir den ausgewählten Prozedurnamen,
Der ausgewählte Prozedurname kann als Schlüssel verwendet werden, um Wert von der HashMap zu holen. erhalten wir die Array-Liste der Parameter von hashmap mit dem Schlüssel.
Aber als ich versuchte, in der GUI angezeigt werden dann war es leer, dann habe ich versucht, um zu sehen, ob Werte sind mit System.out.println und keinen Wert von gedruckten :-(
Das Problem mit private void getParameterList
ist
hier ist der Code.
//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);
}
die Konsolenausgabe
[p_csacas]
[scasca, ascacasc, ascacs]
{[email protected]}
[p_csacas, f_ascasc]
[rrrrrr]
{[email protected], [email protected]}
MouseClickEvent , procedure is p_csacas
[]
ist 210
So können wir sehen, während das Hinzufügen der Prozedur die Werte gibt es in beiden Listen und auch in der HashMAP Aber beim Abrufen bei Mausklick auf Liste in GUI, wird die Ausgabe leer.
Beispiel-Bild von GUI wird als gegeben
Bitte helfen Sie mir mit diesem :-(