Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    76

    actionPerformed e blocco interfaccia

    Ciao ragazzi vorrei un consiglio sull'applicazione che sto sviluppando. La mia è una applicazione di grafica 3D, e gestisce sequenze di immagini piuttosto pesanti al fine di ricostruire modelli tridimensionali (non volendo scendere nel dettaglio si tratta comunque di una applicazione medica che tratta file in formato DICOM) e non è raro avere a che fare con oggetti 3D di dimensione di diverse centinaia di MB.
    Ora, accade che quando voglio eseguire una generica operazione su uno di questi oggetti pesanti, magari a seguito di un click di un bottone, l'interfaccia si blocchi. Mi pare peraltro di aver già letto che ciò è normale, poichè il contenuto del metodo public void actionPerformed(ActionEvent e) blocca l'interfaccia (sbaglio??). Io però vorrei ad esempio mostrare un oggetto per il progress, necessariamente attivandolo all'interno del suddetto metodo. Vorrei cioè che si aprisse una finestrella di attesa mentre viene eseguita l'operazione sul modello 3D.
    Ho provato ad inserire il codice per crearla nel corpo del metodo, ma di fatto la finestra appare solo quando l'esecuzione del metodo stesso termina(per cui è del tutto inutile!). Ho provato anche a crearla all'interno di un thread separato, attivato sempre dal metodo actionPerformed ma idem caso precedente.
    Datemi un consiglio....GRAZIE (Scusate se la discussione è un po lunga.. )

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Sono sempre le solite problematiche relative ai thread con Swing:

    Ecco alcune discussioni in cui se ne è parlato:

    http://forum.html.it/forum/showthrea...readid=1313050
    http://forum.html.it/forum/showthrea...readid=1309320
    http://forum.html.it/forum/showthrea...readid=1259035
    http://forum.html.it/forum/showthrea...readid=1250864

    E ce ne sono molte altre...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    76
    ok grazie dei topic che mi ahi suggerito, mi hanno aiutato a capire il problema. Ora ti faccio una domanda. Il carico pesante del mio programma è rappresentato da operazioni puramente grafiche che intervengono sugli oggetti di interfaccia. Ora considerando questo ed il fatto che ciò che vorrei è che mentre avvengono queste operazioni venisse mostrata una progress bar, come posso fare? Un thread separato cioè non credo che mi sarebbe di aiuto perchè poi se non ho capito male, questo comunque utilizzerà il thread event dispatching thread della mia gui per gli oggetti di interfaccia. ed anche una eventuale progress bar ha bisogno di essere aggiornata contemporaneamente. come posso risolvere?

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.