PDA

Visualizza la versione completa : [Java] JProgressbar


daspin
26-09-2003, 16:03
Ho realizzato una applicazione client-server. Vorrei inserire una progress bar che mi indichi lo stato di ricezione di uno stream di dati (piuttosto lungo) dal server! Come faccio ad impostare la barra in modo tale che si incrementi man mano che dal socket arrivano i dati?!?!? :dhò:

pireda
26-09-2003, 18:03
Imposti un timer che ogni n millisecondi controlla quanti bytes sono stati trasferiti e quindi chiama il metodo setValue(valore) della JProgressBar.

Mi spiace ma non ho tempo per farti un esempio pratico, spero di esserti stato d'aiuto, se non riesci lunedi cercherò di essere più preciso. :ciauz:

daspin
26-09-2003, 21:49
Ok, grazie mille!!!
Stasera provo!!! Dovrò trovare il metodo per recuperare i bytes ricevuti!!! :bhò:
:) :) :)

daspin
27-09-2003, 11:31
Allora...
spiego in breve il problema:
ho una classe interfaccia, una client e altre che non interessano!
Nella classe interfaccia ho dichiarato public static una progressbar "barra" e una label "stato".
Nella classe client setto i valori di questi due oggetti man mano che il programmma riceve lo stream di dati tramite il socket (è un file XML) e li elabora per creare il risultato finale!!!
Per richiamare la classe client uso un bottone al cui click viene costruito un oggetto della classe client:
"clientTCP test = new clientTCP();"
Per creare questo oggetto devo metterci un try catch!!!

Il problema è che quando clicco sul bottone si avvia la ricezione ed elaborazione dei dati, ma i valori della barra e di stato vengono impostati direttamente a 100%!
Vorrei quindi sapere se ciò è dovuto al fatto che provando l'applicazione in locale i tempi sono così rapidi da non permettermi di vedere il processo di avanzamento; oppure se ciò è dovuto al fatto che dovendo utilizzare un try catch, i risultati dei vari aggiornamenti sono disponibili soltanto quando la Virtual Machine è sicura che tutta l'operazione è andata a buon fine (così si spiegherebbe il fatto che vedo soltanto l'ultimo valore della barra: 100%)!!!

Inoltre, per fare delle prove, è possibile fermare il processo per tot millisecondi (come avviene in c con sleep(x))?!? che classe devo importare per fare questo?!?!?

grazie

Loading