Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    29

    [JAVA] cambio testo JButton

    Ciao a tutti,
    ho un problema sicuramente banale, ma non riesco a capire come risolverlo.
    In un Applet, ho un bottone che esegue una procedura che può durare qualche secondo; vorrei che al momento del click cambiasse il testo in un qualcosa tipo "Elaborazione in corso".
    Il problema è che sembra che il testo non venga aggiornato, come se servisse un repaint del bottone, perchè se invece faccio comparire un JDialog (caso in cui non siano impostati tutti i parametri richiesti), vedo correttamente il cambio di testo.
    Qualcuno mi saprebbe aiutare?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] cambio testo JButton

    Originariamente inviato da cg76
    Il problema è che sembra che il testo non venga aggiornato
    Solita e nota (e importantissima) questione sul threading in Swing.
    Si consiglia di leggere:
    Concurrency in Swing
    Threads and Swing
    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
    May 2007
    Messaggi
    29
    Grazie, avevo il dubbio che c'entrasse la concorrenza dei thread... cerco di capire come risolverlo!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da cg76
    Grazie, avevo il dubbio che c'entrasse la concorrenza dei thread... cerco di capire come risolverlo!
    Leggi anche questa mia risposta.
    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
    May 2007
    Messaggi
    29
    Rieccomi.
    Allora, ho creato una classe interna Runnable, il cui costruttore accetta come parametro l'oggetto che contiene il metodo da chiamare sulla pressione del bottone.
    Sull'evento del bottone stesso istanzio il Thread e lo avvio.
    Nel metodo chiamato dalla run() aggiorno il nome del bottone.
    Sembra funzionare corretamente e sono anche riuscito a risolvere un altro problema derivante dalla pressione multipla del bottone, dato che gli eventi restavano memorizzati e quindi facevano ripartire di nuovo l'evento, disabilitandolo durante l'esecuzione del Thread.
    Spero di non aver fatto grossolani errori, ma mi pare che così sia a posto. Che ne dite?

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.