Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    102

    Tenere libero il frame durante un evento

    Salve, ho notato che durante la gestione di un evento (ad esempio la pressione di un bottone), quindi un salto al metodo actionPerformed(ActionEvent e), il frame che ha richiamato tale metodo rimane bloccato, né permettendo la pressione di ulteriori componenti né l'aggiornamento video (infatti il bottone rimane schiacciato).
    A me servirebbe invece rendere libero il frame durante la gestione dell'evento, dato che devo far visualizzare in tempo reale una lista stampata in una JTextArea... cosa potrei fare? Grazie!

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Lancia l'operazione in un nuovo thread. L'EDT non va MAI tenuto occupato.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    102
    Ok, siccome non ho la minima idea di cosa sia un Thread, e non mi sembra giusto chiedere codice bello e fatto, dovrei andarlo a studiare... chiedo solo una cosa, qui va bene?

    Java Tutorial: Threads

    Grazie!

    EDIT

    Semplicissimo, alla terza pagina già ti spiega tutto quanto! Adesso c'è un altro problema, vedo di risolverlo da me sulla documentazione e in caso poi chiedo... grazie =)

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    102
    Un ultimo problema però... lanciando il nuovo thread, mi si liberano tutte le finestre! Io vorrei che rimanesse libera solo la finestra lanciata dal thread, e quella principale deve rimanere freezata! Come mai la libera pure?

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da valerio65
    Un ultimo problema però... lanciando il nuovo thread, mi si liberano tutte le finestre! Io vorrei che rimanesse libera solo la finestra lanciata dal thread, e quella principale deve rimanere freezata!
    Puoi spiegarti meglio?

    Originariamente inviato da valerio65
    Come mai la libera pure?
    Senza sapere cosa hai scritto è un po' difficile...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    102
    Allora... ho una finestra principale che è costruita sul metodo main del programma! Questa finestra principale, alla pressione di un bottone, richiama una finestra secondaria, che mi deve mostrare in tempo reale dei progressi in una JTextArea... il problema era che EDT freezava le finestre quando gestiva un'evento, e quindi ho esteso la classe della finestra secondaria con la classe Thread e mettendo il codice nel metodo run()... adesso la finestra secondaria è libera dal freeze e mi mostra in tempo reale i suoi progressi, ma si è liberata pure la prima, ovvero quella principale, che deve rimanere freezata!

    In primo luogo avevo pensato di trasformare la seconda finestra in una JDialog, dandogli come parametro la finestra principale rendendola inselezionabile, ma il metodo setVisible() blocca l'esecuzione del codice, quindi sono costretto a chiudere la finestra per andare avanti, cosa che non si deve fare...

    quindi stavo cercando per altre soluzioni... qualche consiglio? :S

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    102
    Risolto, il JFrame eredita il metodo setEnabled() ... pensavo non lo ereditasse, scusate

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 © 2025 vBulletin Solutions, Inc. All rights reserved.