Programmazione Java e wait
- daemon_nio
- Entusiasta Emergente

- Messaggi: 1012
- Iscrizione: lunedì 15 gennaio 2007, 14:18
- Sesso: Maschile
- Località: London
- Contatti:
Programmazione Java e wait
Ho un problemino.
Ho un oggetto Java Canvas che traimite il metodo paint() disegna delle cose grafiche, poi con il metodo keyPressed() si mette in attesa di una pressione di un tasto ed esegue un repaint().
Ora quello che voglio fare è: disegnare qualcosa, aspettare qualche secondo e disegnare qualche altra cosa.
Come faccio ad attendere?
Ho provato this.wait(3000), ma mi solleva l'eccezione IllegalMonitorStateException la cui spiegazione è: Thrown to indicate that a thread has attempted to wait on an object's monitor or to notify other threads waiting on an object's monitor without owning the specified monitor.
Ma che significa? perché non posseggo il monitor? Ho solo un dubbio... Canvas non deriva da Thread, quindi credo sia per questo non posso fare una wait... ma allora come attendo 3 secondi?
Spero di essermi spiegato... P.S. sono con J2ME
Ho un oggetto Java Canvas che traimite il metodo paint() disegna delle cose grafiche, poi con il metodo keyPressed() si mette in attesa di una pressione di un tasto ed esegue un repaint().
Ora quello che voglio fare è: disegnare qualcosa, aspettare qualche secondo e disegnare qualche altra cosa.
Come faccio ad attendere?
Ho provato this.wait(3000), ma mi solleva l'eccezione IllegalMonitorStateException la cui spiegazione è: Thrown to indicate that a thread has attempted to wait on an object's monitor or to notify other threads waiting on an object's monitor without owning the specified monitor.
Ma che significa? perché non posseggo il monitor? Ho solo un dubbio... Canvas non deriva da Thread, quindi credo sia per questo non posso fare una wait... ma allora come attendo 3 secondi?
Spero di essermi spiegato... P.S. sono con J2ME
Sempre costruendo qualcosa di nuovo: Matag: The Game
- Massimo S.
- Entusiasta Emergente

- Messaggi: 1931
- Iscrizione: giovedì 28 settembre 2006, 14:34
Re: Programmazione Java e wait
Sbagli candeggio! 
Il metodo wait serve a tutt'altro.
Usa il metodo statico sleep della classe Thread, vedi http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html#sleep(long)
Il metodo wait serve a tutt'altro.
Usa il metodo statico sleep della classe Thread, vedi http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html#sleep(long)
- daemon_nio
- Entusiasta Emergente

- Messaggi: 1012
- Iscrizione: lunedì 15 gennaio 2007, 14:18
- Sesso: Maschile
- Località: London
- Contatti:
Re: Programmazione Java e wait
Sì già era proprio quello che volevo fare... ma non sapevo fosse un metodo statico.
Grazie
Grazie
Ultima modifica di daemon_nio il domenica 9 marzo 2008, 16:36, modificato 1 volta in totale.
Sempre costruendo qualcosa di nuovo: Matag: The Game
- Massimo S.
- Entusiasta Emergente

- Messaggi: 1931
- Iscrizione: giovedì 28 settembre 2006, 14:34
Re: Programmazione Java e wait
Sai cosa significa "metodo statico" ?
non c'è nessun bisogno di implementare o estendere la classe Thread.
Dove ti serve metti semplicemente
Per far "dormire" la tua applicazione per 3 secondi
non c'è nessun bisogno di implementare o estendere la classe Thread.
Dove ti serve metti semplicemente
Codice: Seleziona tutto
Thread.sleep(3000);- daemon_nio
- Entusiasta Emergente

- Messaggi: 1012
- Iscrizione: lunedì 15 gennaio 2007, 14:18
- Sesso: Maschile
- Località: London
- Contatti:
Re: Programmazione Java e wait
Sì so cos'è un metodo statico :-[.
All'inizio ho detto un po' di cacchiate perché non avevo letto la parola statico.
Poi ho riletto il messaggio e ho capito.
Ho utilizzato sempre il metodo sleep nei thread (this.sleet(1000))... ma non mi ero mai accorto che fosse un metodo statico e che si poteva utilizzare anche in una normale applicazione.
Anche se non ho risolto completamente il problema, l'oggetto canvas è abbastanza strano. Se disegno qualcosa, faccio uno sleep e disegno qualche altra cosa, viene disegnato tutto alla fine, in pratica quando la funzione esegue return. Quindi ho cancellato tutta l'applicazione e la rifarò da zero pensata meglio. In fondo Sto scrivendo codice solo per imparare.
Grazie ancora ciao.
All'inizio ho detto un po' di cacchiate perché non avevo letto la parola statico.
Poi ho riletto il messaggio e ho capito.
Ho utilizzato sempre il metodo sleep nei thread (this.sleet(1000))... ma non mi ero mai accorto che fosse un metodo statico e che si poteva utilizzare anche in una normale applicazione.
Anche se non ho risolto completamente il problema, l'oggetto canvas è abbastanza strano. Se disegno qualcosa, faccio uno sleep e disegno qualche altra cosa, viene disegnato tutto alla fine, in pratica quando la funzione esegue return. Quindi ho cancellato tutta l'applicazione e la rifarò da zero pensata meglio. In fondo Sto scrivendo codice solo per imparare.
Grazie ancora ciao.
Sempre costruendo qualcosa di nuovo: Matag: The Game
- Massimo S.
- Entusiasta Emergente

- Messaggi: 1931
- Iscrizione: giovedì 28 settembre 2006, 14:34
Re: Programmazione Java e wait
Be capita anche a me a volte di leggere troppo velocemente i post perdendomi qualcosa.
Mi sa però che più di cosi non ti posso aiutare, non sono molto pratico di awt/swing, normalmente lavoro su web-applications
Ciao
Mi sa però che più di cosi non ti posso aiutare, non sono molto pratico di awt/swing, normalmente lavoro su web-applications
Ciao
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti