Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Strana iterazione in un for

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

  2. #2
    Hai verificato che sia solo il for a essere richiamato due volte o è tutta la funzione?
    Potrebbe essere solo una svista, magari chiami due volte l'evento.

  3. #3
    era proprio quello il problema, risolto con:
    codice:
    if (this.listaServizi.getValueIsAdjusting()) {
        return;
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.