Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Java: Aggiungere icona su un bottone mentre gira un processo

    Ciao ho questa piccola problematica.
    ho creato un bottone in una tabella quando clicco parte un processo che viene completato nel giro di 10 - 20 secondi.
    Nel bottone modifico il testo con "..." e fin qui tutto bene.

    codice:
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        	if (isSelected) {
          		button.setForeground(table.getSelectionForeground());
          		button.setBackground(table.getSelectionBackground());
        	} 
        	else{
          		button.setForeground(table.getForeground());
          		button.setBackground(table.getBackground());
        	}
        	
        	label = "...";
        	button.setText( label );
    
    
    
    
        	_row=row;
        	isPushed = true;
        	return button;
    }


    La problematica entra in gioco quando voglio inserire nel mio bottone un'icona con un gif animata per rendere più chiaro il messaggio di attesa.

    al posto di button.setText( label );
    ho provato ad inserire un Thread
    codice:
    ActivateIconButtonThread t1=new ActivateIconButtonThread(button);
    t1.start();
    
    
    class ActivateIconButtonThread extends Thread
    {
       private JButton butt;
       public ActivateIconButtonThread(JButton _button)
       {
          butt=_button;
       }
    
    
       @Override
       public void run()
       {
    	   butt.setIcon(AppResources.getIcon("loadR.gif"));
       }
    }
    E non funziona, mi mostra l'icona alla fine del processo.

    Ho provato ad inserire uno invokeLater
    codice:
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        		public void run() {
        			button.setIcon(AppResources.getIcon("loadR.gif"));
        		}
        	});
    ma il risultato è sempre lo stesso di prima.

    Cosa devo fare per ingannare l'EDT?!?!?

    Grazie.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  2. #2
    Nessuno sa nulla?!?
    Molte volte il discorso era stato preso ma non trovo informazioni
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

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.