Visualizzazione dei risultati da 1 a 10 su 10

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Si certo, quello che volevo testare era se appunto riuscivo a invertire le immagini (e quindi in generale intervenire sull'interfaccia)
    prima che il programma si interrompa per un certo periodo.
    Solo che speravo che l'invokeAndWait fosse del tutto "bloccante", ma se invece di inserire le istruzioni da fare solo dopo lo sleep del thread all'interno del Run di Esecutore io richiamo il tutto da un metodo di un'altra classe sono sicuro che prima di andare avanti con l'esecuzione delle istruzioni del metodo il thread faccia appunto quello che voglio,cioè aggiornare l'interfaccia, bloccare, e solo dopo andare avanti?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Ansharja Visualizza il messaggio
    volevo testare era se appunto riuscivo a invertire le immagini
    Ma questo lo puoi fare anche senza multi-threading.

    Quote Originariamente inviata da Ansharja Visualizza il messaggio
    prima che il programma si interrompa per un certo periodo.
    Non si "interrompe" un bel niente nel tuo caso. Cioè non c'è nulla nella interfaccia che si "blocca".

    Quote Originariamente inviata da Ansharja Visualizza il messaggio
    Solo che speravo che l'invokeAndWait fosse del tutto "bloccante"
    invokeAndWait infatti è bloccante. Quando invokeAndWait ritorna, sei sicuro che quel Runnable è stato eseguito nel EDT. Ma il EDT è sicuramente molto libero (hai lanciato un thread a parte proprio per non bloccarlo) e il codice in Inverti è praticamente quasi istantaneo perché fa solo banali get/set su delle proprietà.

    Quote Originariamente inviata da Ansharja Visualizza il messaggio
    ma se invece di inserire le istruzioni da fare solo dopo lo sleep del thread all'interno del Run di Esecutore io richiamo il tutto da un metodo di un'altra classe sono sicuro che prima di andare avanti con l'esecuzione delle istruzioni del metodo il thread faccia appunto quello che voglio,cioè aggiornare l'interfaccia, bloccare, e solo dopo andare avanti?
    Il Event Dispatch Thread comunque non lo devi mai tenere "impegnato" tu con operazioni bloccanti, read da file/socket, sleep, ecc...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Il Event Dispatch Thread comunque non lo devi mai tenere "impegnato" tu con operazioni bloccanti, read da file/socket, sleep, ecc...
    Quindi se io inserissi il metodo sleep all'interno di invokeAndWait sarebbe un problema?
    E' che io ho bisogno proprio di fermare tutto, perchè i cambiamenti all'interfaccia devono essere visibili per un certo lasso di tempo prima di farne di successivi e via così...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Ansharja Visualizza il messaggio
    Quindi se io inserissi il metodo sleep all'interno di [COLOR=#333333]invokeAndWait sarebbe un problema?
    Se intendi nel run eseguito dal invokeAndWait, sì, è un problema perché essendo nel EDT lo terresti impegnato tu.

    Quote Originariamente inviata da Ansharja Visualizza il messaggio
    E' che io ho bisogno proprio di fermare tutto
    Il fatto di impedire l'uso da parte dell'utente lo si fa facendo in modo che per un certo tot di tempo i componenti rilevanti siano disabilitati o usando dei flag in modo che a livello applicativo non succedano le modifiche.
    Non mettendo uno sleep nel EDT.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Il fatto di impedire l'uso da parte dell'utente lo si fa facendo in modo che per un certo tot di tempo i componenti rilevanti siano disabilitati o usando dei flag in modo che a livello applicativo non succedano le modifiche.
    Si si' questo l'ho già fatto in altre situazioni,cerco di spiegarmi meglio perchè così sto solo girando attorno al problema.
    L'applicazione cerca di gestire una partita di carte tra un giocatore (che quindi preme i bottoni) e il computer.
    Quando il giocatore preme il bottone della carta setto le icone delle label in modo da mostrare la carta scelta,poi tocca al computer.
    Il problema viene fuori quando il computer fa due mosse consecutive: devo trovare il modo di aggiornare la JLabel corrispondente alla mossa, lasciarla visibile per un certo periodo (per quello volevo usare lo sleep), dopodichè il computer fa un altra mossa e rendo visibile pure quella.Da questo momento in poi non serve più bloccare perchè tanto la mossa successiva toccherà per forza al giocatore.
    Se in quel periodo io tengo impegnato l'EDT non dovrebbe essere un problema perchè un azione da parte dell'utente sarebbe comunque da ignorare,a meno che così non nascano ulteriori problemi...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.