Quote Originariamente inviata da Danix Danilovic Visualizza il messaggio
ciao a tutti ,
ho un client con GUI che invia un file al server. come faccio ad associare una JProgressBar presente sulla GUI del client all'invio del file al server (ovvero che la barra avanza in base all'invio del file) ?
Innanzitutto si presuppone che tu abbia fatto la gestione dell'invio in un thread a parte dedicato. Perché se la fai nel contesto del Event Dispatch Thread bloccheresti tutta la interfaccia utente.
Poi come mostrare l'avanzamento si può fare in più modi. Sicuramente con un semplice JProgressBar messo da qualche parte nella tua interfaccia. Ma si può anche usare javax.swing.ProgressMonitor che è sostanzialmente una dialog box con una logica dedicata alla visualizzazione del progresso di "qualcosa".

E nel caso del multi-threading bisogna ricordarsi sempre che in un thread separato (non il EDT) non si deve accedere mai direttamente alla interfaccia utente (salvo pochi casi documentati). Quindi a meno di usare lo SwingWorker, in genere basta usare il "solito" SwingUtilities.invokeLater per far eseguire il codice di update della progressbar nel EDT.