franksisca
11-05-2012, 16:57
private void listaServiziValueChanged(javax.swing.event.ListSelectionEvent evt) {
if (this.listaServizi.getSelectedIndex() < 0) {
return;
}
this.elencoFile.removeAllElements();
this.addService.setEnabled(true);
this.addReferente.setEnabled(true);
this.addFile.setEnabled(true);
Servizio servizio = (Servizio) this.listaServizi.getSelectedValue();
this.elencoReferenti = new Vector<Referente>();
this.sintesiRefPerc = new Vector<String>();
this.listaReferenti.setListData(servizio.getElencoReferenti().toArray());
Object[] referentiDaReinserire = servizio.getElencoReferenti().toArray();
for (int i = 0; i < referentiDaReinserire.length; ++i) {
System.out.println("stampa la lunghezza: " + referentiDaReinserire.length);
System.out.println("stampa l'indice i: " + i);
System.out.println("inserimento dei referenti già presenti: " + (Referente) referentiDaReinserire[i]);
this.elencoReferenti.add((Referente) referentiDaReinserire[i]);
this.sintesiRefPerc.add(((Referente) (referentiDaReinserire[i])).getCodiceFiscale() + "#" + this.percentualeSpinner.getValue());
}
this.descrioneText.setText(servizio.getDescrizione());
this.prezzoText.setText(servizio.getPrezzo());
LinkedList<Referente> linkedReferenti = servizio.getElencoReferenti();
LinkedList<File> linkedFile = servizio.getElencoFile();
for (File file : linkedFile) {
this.elencoFile.add(file);
}
this.listaFile.setListData(this.elencoFile);
this.settaReferenti(servizio);
}
l'output è questo
stampa la lunghezza: 2
stampa l'indice i: 0
inserimento dei referenti già presenti: R{2 2}
stampa la lunghezza: 2
stampa l'indice i: 1
inserimento dei referenti già presenti: R{1 1}
stampa la lunghezza: 2
stampa l'indice i: 0
inserimento dei referenti già presenti: R{2 2}
stampa la lunghezza: 2
stampa l'indice i: 1
inserimento dei referenti già presenti: R{1 1}
vi spiego "la funzione": questo metodo viene richiamato quando "cambio" il selected element su una jlist, che a sua volta mi deve compilare delle altre jlist (referenti e file associati) più altri campi. il problema è che è come se venisse richiamata due volte l'aggiornamento, e quindi anche i vettori che vado a riempiere poi mi contengono più oggetti. mi sfugge qualcosa in riferimento alle swing oppure sono talmente rinco da non vedere qualcosa di banale?
if (this.listaServizi.getSelectedIndex() < 0) {
return;
}
this.elencoFile.removeAllElements();
this.addService.setEnabled(true);
this.addReferente.setEnabled(true);
this.addFile.setEnabled(true);
Servizio servizio = (Servizio) this.listaServizi.getSelectedValue();
this.elencoReferenti = new Vector<Referente>();
this.sintesiRefPerc = new Vector<String>();
this.listaReferenti.setListData(servizio.getElencoReferenti().toArray());
Object[] referentiDaReinserire = servizio.getElencoReferenti().toArray();
for (int i = 0; i < referentiDaReinserire.length; ++i) {
System.out.println("stampa la lunghezza: " + referentiDaReinserire.length);
System.out.println("stampa l'indice i: " + i);
System.out.println("inserimento dei referenti già presenti: " + (Referente) referentiDaReinserire[i]);
this.elencoReferenti.add((Referente) referentiDaReinserire[i]);
this.sintesiRefPerc.add(((Referente) (referentiDaReinserire[i])).getCodiceFiscale() + "#" + this.percentualeSpinner.getValue());
}
this.descrioneText.setText(servizio.getDescrizione());
this.prezzoText.setText(servizio.getPrezzo());
LinkedList<Referente> linkedReferenti = servizio.getElencoReferenti();
LinkedList<File> linkedFile = servizio.getElencoFile();
for (File file : linkedFile) {
this.elencoFile.add(file);
}
this.listaFile.setListData(this.elencoFile);
this.settaReferenti(servizio);
}
l'output è questo
stampa la lunghezza: 2
stampa l'indice i: 0
inserimento dei referenti già presenti: R{2 2}
stampa la lunghezza: 2
stampa l'indice i: 1
inserimento dei referenti già presenti: R{1 1}
stampa la lunghezza: 2
stampa l'indice i: 0
inserimento dei referenti già presenti: R{2 2}
stampa la lunghezza: 2
stampa l'indice i: 1
inserimento dei referenti già presenti: R{1 1}
vi spiego "la funzione": questo metodo viene richiamato quando "cambio" il selected element su una jlist, che a sua volta mi deve compilare delle altre jlist (referenti e file associati) più altri campi. il problema è che è come se venisse richiamata due volte l'aggiornamento, e quindi anche i vettori che vado a riempiere poi mi contengono più oggetti. mi sfugge qualcosa in riferimento alle swing oppure sono talmente rinco da non vedere qualcosa di banale?