codice: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
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?codice: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}

Rispondi quotando