Forum Programmation.java Ecouter un bouton

Posté par  .
Étiquettes : aucune
0
27
avr.
2005
Bonjour,

J'ai deux boutons dans une applet. Le premier me lance une action de calcul assez long. J'aimerai que le second me permette d'arrêter le calcul. Malheureusement, le calcul bloque l'interface et il n'est plus possible d'appuyer sur le second bouton.

Est-il possible au milieu du calcul de regarder si le second bouton a été appuyé ?

Merci

Yvounet14
http://www.netibu.com(...)
  • # "Thread"-er ?

    Posté par  . Évalué à 3.

    Si tu veux faire plusieurs choses à la fois, pense à regarder du côté de Thread, Runnable & co.
  • # re

    Posté par  (site web personnel) . Évalué à 0.

    Oui si cé du python par exemple il faut separer la thread du calcul dans une nouvelle thread au lieu de la mettre dans la meme que la GUI
  • # Thread

    Posté par  . Évalué à 4.

    Ce que tu fais la il ne faut pas le faire. c'est a cause de ce genre de choses que les applications swing peuvent etre lentes. Quand tu lances ton calcul à l'interieur de la méthode actionPerformed, ce calcul est effectué à l'intérieur du thread Swing qui s'occupe de l'affichage. Par conséquent, comme ton calcul est long, tout les actions swing, comme par exemple repeindre les boutons ou réagir aux actions sont gelée. Pour corriger cela, il faut lancer ton calcul dans un thread indépendant du thread Swing qui s'occupe de l'affichage et ensuite une fois ton calcul terminé, envoyer les resultats à afficher dans le thread Swing;
    private void longTimeToCompute {
    
        // 1er thread pour ton calcul 
        new Thread() {
            public void run() {
            
               // Ton calcul 
              String result = calcul() ; 
    
               // On renvoie les résultats à travers un Runnable 
               // dans le thread Swing. 
                SwingUtilities.invokeLater(
                    new Runnable() {
                        public void run() {
                               label.setText(result) ; 
                        }
                    }
                );
            }
        }.start();
    }
    
    • [^] # Re: Thread

      Posté par  . Évalué à 1.

      Magnifique, je ne pouvais pas attendre de meilleure réponse.

      Merci beaucoup et ca marche super bien !

      @+

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.