Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    31

    Esecuzione parallela di due metodi

    Salve a tutti All'interno del mio programma ho un JPanel con degli elementi grafici all'interno, ed un metodo che esegue un determinato algoritmo.
    Il mio obiettivo è quello di aggiornare il JPanel man mano che l'algoritmo prosegue (in pratica nel JPanel viene mostrato graficamente ciò che accade nell'algoritmo).
    Ho creato un timer (javax.swing.Timer) che aggiorna il JPanel ad intervalli regolari, mentre l'algoritmo viene eseguito tramite un'istanza di una classe che è un'estensione di Thread, attraverso il metodo run().
    Il problema è che la cosa non funziona in quanto ovviamente viene eseguito prima tutto l'algoritmo, e poi il timer. Vorrei che fossero eseguiti parallelamente. Come posso ovviare al problema?
    Grazie mille in anticipo!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    31
    Risolto: chiamavo erroneamente run() invece di start().
    Mi scuso per aver aperto una discussione inutile

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Naomi92 Visualizza il messaggio
    Ho creato un timer (javax.swing.Timer) che aggiorna il JPanel ad intervalli regolari, mentre l'algoritmo viene eseguito tramite un'istanza di una classe che è un'estensione di Thread, attraverso il metodo run().
    Non posso sapere esattamente cosa hai scritto ma ricorda solo che in un thread diverso dal EDT non è corretto aggiornare direttamente la UI. Mentre invece se il thread aggiorna dati, variabili, strutture dati che devono poi essere accedute dal EDT, devi assicurare la "visibilità" delle modifiche.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.