Programmazione Java e wait

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

Programmazione Java e wait

Messaggio da daemon_nio »

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
Sempre costruendo qualcosa di nuovo: Matag: The Game
Avatar utente
Massimo S.
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1931
Iscrizione: giovedì 28 settembre 2006, 14:34

Re: Programmazione Java e wait

Messaggio da Massimo S. »

Sbagli candeggio!  ;D

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)
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

Re: Programmazione Java e wait

Messaggio da daemon_nio »

Sì già era proprio quello che volevo fare... ma non sapevo fosse un metodo statico.

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
Avatar utente
Massimo S.
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1931
Iscrizione: giovedì 28 settembre 2006, 14:34

Re: Programmazione Java e wait

Messaggio da Massimo S. »

Sai cosa significa "metodo statico" ?

non c'è nessun bisogno di implementare o estendere la classe Thread.

Dove ti serve metti semplicemente

Codice: Seleziona tutto

Thread.sleep(3000);
Per far "dormire" la tua applicazione per 3 secondi
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

Re: Programmazione Java e wait

Messaggio da daemon_nio »

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.
Sempre costruendo qualcosa di nuovo: Matag: The Game
Avatar utente
Massimo S.
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1931
Iscrizione: giovedì 28 settembre 2006, 14:34

Re: Programmazione Java e wait

Messaggio da Massimo S. »

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
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti