 |
AppletTalk.com Java discussions newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
raynor@localhost Guest
|
Posted: Wed Jan 26, 2005 11:47 am Post subject: Problema con i thread |
|
|
Ho implementato un algoritmo che, dipendentemente dagli input, impiega
un tempo variabile per terminare (da millesimi a diversi secondi).
Durante l'elaborazione vorrei però che l'applicazione non rimanesse
bloccata, ma fosse "attiva" e magari anche mostrare una progress bar che
indichi la percentuale di elaborazione completata.
La finestra principale è derivata da JFrame, l'algoritmo si avvia
tramite la pressione di un JButton. Ho pensato di fare aprire una
JWindow (nella quale avviare l'algoritmo) contenente la JProgressBar che
dovrebbe "riempirsi" mano a mano che l'algoritmo procede.
Ho fatto una cosa del genere:
// finestra principale
// con ActionListener del JButton
public void actionPerformed(ActionEvent e) {
ProgressWindow pw = new ProgressWindow(parametri_algoritmo);
....
}
// ProgressWindow
public class ProgressWindow extends JWindow implements Runnable {
private parametri;
private JProgressBar progress;
public ProgressWindow(parametri) {
setParametri(parametri);
progress.setSize(...);
progress.moreOperations();
....
}
public void run() {
// devo avviare algoritmo(parametri) e aggiornare la progress
}
Visto che non sono molto ferrato sui Thread, cosa metto nel run()?
Grazie a tutti per l'aiuto.
|
|
| Back to top |
|
 |
[Ech3L0n] NSA Guest
|
Posted: Wed Jan 26, 2005 3:37 pm Post subject: Re: Problema con i thread |
|
|
On Wed, 26 Jan 2005 11:47:21 GMT, raynor@localhost wrote:
| Quote: | Ho implementato un algoritmo che, dipendentemente dagli input, impiega
un tempo variabile per terminare (da millesimi a diversi secondi).
Durante l'elaborazione vorrei però che l'applicazione non rimanesse
bloccata, ma fosse "attiva" e magari anche mostrare una progress bar che
indichi la percentuale di elaborazione completata.
La finestra principale è derivata da JFrame, l'algoritmo si avvia
tramite la pressione di un JButton. Ho pensato di fare aprire una
JWindow (nella quale avviare l'algoritmo) contenente la JProgressBar che
dovrebbe "riempirsi" mano a mano che l'algoritmo procede.
Ho fatto una cosa del genere:
// finestra principale
// con ActionListener del JButton
public void actionPerformed(ActionEvent e) {
ProgressWindow pw = new ProgressWindow(parametri_algoritmo);
...
}
// ProgressWindow
public class ProgressWindow extends JWindow implements Runnable {
private parametri;
private JProgressBar progress;
public ProgressWindow(parametri) {
setParametri(parametri);
progress.setSize(...);
progress.moreOperations();
...
}
public void run() {
// devo avviare algoritmo(parametri) e aggiornare la progress
}
Visto che non sono molto ferrato sui Thread, cosa metto nel run()?
Grazie a tutti per l'aiuto.
|
Non reinventare la ruota:
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/ProgressMonitor.html
Ripeto anche per te: dieci minuti in più, persi a spulciare la
documentazione classe per classe, possono salvare ore di lavoro ;)
--
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net - http://xenu.freewinds.cx/ - http://www.xenu.net/
(per rispondere personalmente leva IlDitoDalCulo)
|
|
| Back to top |
|
 |
raynor@localhost Guest
|
Posted: Thu Jan 27, 2005 1:16 pm Post subject: Re: Problema con i thread |
|
|
[Ech3L0n] NSA wrote:
Ti ringrazio per il consiglio, ma il fatto è che io non ho ben chiaro
come funzionano i thread, per cui non riesco ad ottenere ciò che vorrei
(che è proprio quello che viene mostrato negli esempi sulla JProgressBar
e ProgressMonitor). Dove potrei trovare una guida ben fatta all'uso dei
thread?
Ho letto "Java mattone dopo mattone", da lì *sembra* che io abbia capito
il funzionamento, ma poi, quando devo applicare tutto questo alla mia
applicazione saltano fuori i casini.
Ciao e grazie.
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|