|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2006
Città: Catania
Messaggi: 742
|
[JAVA] MouseAdapter
Ho creato un form con netbeans con un paio di bottoni
ora quando nell'evento del bottone inserisco del codice che mi da in output qualcosa, del tipo un ciclo che mi calcoli 100000 numeri primi, mi comunica il risultato tutto in una volta alla fine del processo io vorrei invece che me lo comunicasse numero per numero in pratica ho creato una barra di progressione che dovrebbe partirmi quando inizia il processo.però in questo modo parte solo alla fine del processo Codice:
btnStart.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
btnStartMouseClicked(evt);
}
Codice:
private void btnStartMouseClicked(java.awt.event.MouseEvent evt)
{
barra.setIndeterminate(true);
CODICE VARIO
}
dove sbaglio?
__________________
Voglio sapere di che tessuto deve essere un discorso per non fare neanche una piega Alternativa ai pacchi di NLITE MacBook & Canon Ixus 80 |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Meglio se posti tutto il codice di quello che succede nell'action... Comunque se devi eseguire del codice "oneroso" è meglio che lo sleghi dal AWT Event thread e lo lanci in un thread a parte, così da lasciare libera l'interfaccia. |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Che non puoi impegnare il EDT (event-dispatch-thread) per tutto il tempo che ti pare. Altrimenti a) congeli l'intera interfaccia utente della tua applicazione e b) le modifiche che eventualmente apporti alla interfaccia utente non verranno applicate finché sei tu che stai impegnando il EDT.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 01-04-2008 alle 18:03. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2006
Città: Catania
Messaggi: 742
|
come faccio a lanciarlo in thread a parte?
__________________
Voglio sapere di che tessuto deve essere un discorso per non fare neanche una piega Alternativa ai pacchi di NLITE MacBook & Canon Ixus 80 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Istanziando un Thread creato passando una implementazione di Runnable oppure creando una istanza di una classe che estende Thread. Vedi comunque il tutorial per tutti i dettagli.
Però sappi che questo porta sicuramente ad altre questioni. Se nel "tuo" thread devi andare a modificare la interfaccia utente (set di qualcosa sui componenti ecc....), salvo per casi e operazioni specifiche ben documentate come thread-safe, non puoi farle dal tuo thread ma devi farle nel contesto del EDT.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:31.




















