PDA

View Full Version : [java] gestione/elaborazione Stringhe


slowguitar
25-11-2005, 11:39
Ciao gente,
volevo chiedere un consiglio, premetto che non sono molto addentro..

ho una classe (che lavora in un JFrame) che elebora/calcola molte Stringhe abbastanza lunghe
e ho calcolato che nella situazione di "carico" massimo
ci mette una vita...udite udite circa 40secondi con il risultato
che mi frizza i due JFrame del programma.
Secondo voi si puo' fare qualcosa o devo cambiare implementazione?

p.s. ho provato a lanciare la cosa in thread a parte ma il risultato è lo stesso
:cry:

sottovento
25-11-2005, 12:45
Ciao,
prima di tutto, cosa intendi per "lavora in un JFrame"? Una relazione di utilizzo? (per esempio, a seguito di un particolare evento fai partire il calcolo...) oppure una relazione di specializzazione? (Hai esteso la classe?).

Ad ogni modo, se ci impiega cosi' tanto tempo, la cosa da fare e' aprire un thread separato, in modo che l'interfaccia utente continui a funzionare mentre il calcolo ha luogo.

Se questo, durante la tua prova, non e' avvenuto, possono esser successe due cose:
1 - il carico della CPU e' tale da non permettere altre operazioni. In tal caso, pero', vedresti rallentati anche gli altri programmi...
2 - c'e' un piccolo bug nella gestione del thread, che obbliga l'interfaccia utente ad attendere che il thread in questione finisca. Mi succede spesso

Se vuoi, potresti pubblicare il codice....


ciao

slowguitar
25-11-2005, 14:53
Ciao sottovento

al momento non ho qui la classe peche' sono in ufficio,
cmq è un jframe nel quale vado a fare un'anteprima di stampa
(probabilmente c'era un modo piu' semplice/funzionale per fare il lavoro ma io date le mie lacune di base non ho individuato)

praticamente estraggo il testo da un DB e faccio un calcolo per stabilire di quante JTextarea ho bisogno per farne l'anteprima (max 30 righe), poi le JTextArea riempite di testo vengono aggiunte al JFrame.

ho paura pero' che nel mio codice "di calcolo" si facciano nel contempo operazioni "grafiche" quindi correggimi se sbaglio mi si incarterebbe la coda degli eventi frizzandomi cmq le finestre, giusto?

scusa ne approfitto un po'