Thread JAVA

Thread JAVA - Java - Programmation

Marsh Posté le 17-12-2008 à 17:08:46    

Bonjour,
 
J'aurais quelques question au sujet des Threads.  
Je dois mettre en parallèle différents guichet de banque dans mon application java.
J'ai donc besoin de plusieurs threads; Juqu'à la tout va bien.
Je vais donc devoir écrire ma méthode run()...
C la que j'ai un petit probleme.
En effet, je dois pouvoir gérer en parallèle donc 2 guichets qui sont en fait une succession de JFrame !!!
Comment faire pour que la methode thread tienne compte de cette succession de JFrame et ne se termine que lorque la derniere fenetre est fermé.
 
J'epère avoir été assez clair. J'ai mit quelques ligne de code en esperant que cela vous aide.
 
Merci d'avance.  
 
C'est ici que je defini mon nouveau Thread
 

Code :
  1. public class FenetreIdentGuichet extends JFrame implements ActionListener,Runnable {
  2. // Declaration
  3. public FenetreIdentGuichet(Bank.Banque labanque)
  4.        {
  5.             // Creation de notre affichage  
  6. }
  7. public void actionPerformed(ActionEvent e)
  8. {
  9.           Object source= e.getSource();
  10.           if(source==boutonValider)
  11.           {
  12.          if(tabClient.isEmpty())
  13.          {
  14.           this.dispose();
  15.          }
  16.          else
  17.          {
  18.           Controleur.ControlIdentGuichet cig = new Controleur.ControlIdentGuichet(banque,this,c,numCompte);
  19.                         -> Qui lui meme va appellé un affichage -> Controluer  -> dernier affichage ...
  20.          }
  21.           }
  22.        }
  23.        public void run() { ?????????????????????}

 
 
 

Reply

Marsh Posté le 17-12-2008 à 17:08:46   

Reply

Marsh Posté le 18-12-2008 à 10:32:57    

Bonjour,
 
Suite à une relecture de l'énoncé de mon problème, je me suis aperçu qu'il n'était pas très clair.
Je vais donc reformuler ma question...
 
Je voudrais savoir comment gérer une succession d'affichage dans le run() d'un Thread.
 
Probleme:
Par exemple si je clique sur un bouton valider -> Je lance alors un thread qui va ouvrir une première fenêtre qui va alors ouvrir si je valide une autre fenêtre ainsi dessuite jusqu'à une fenêtre finale...
 
Comment faire pour coder cette succession d'affichage dans le run() ???
 
En effet, si je ne lance que la premiere fenetre dans le run() alors une fois ouverte c'est la fin de thread (j'ai fini mon run()) et les autres fentres ne sont pas pris en compte dans mon run().
 
De cette manière je pourrais lancé plusieurs fois cet suite d'affichage de manière indépendante sans qu'un affichage me bloque un autre affichage.
 
Merci d'avance

Reply

Marsh Posté le 18-12-2008 à 13:10:40    

pas besoin de thread pour ça
tu ouvres une fenêtre et quand tu la fermes, tu ouvres la suivante.
 
Je ne vois pas trop ou est le problème en fait.


---------------
Voir les RAW sous Android: https://market.android.com/details? [...] .RawVision Blog Photo: http://photouch.me Applications mobiles: http://caketuzz.com Wapcam Project: http://wapcam.mobi
Reply

Marsh Posté le 18-12-2008 à 13:14:45    

wapcamer a écrit :

pas besoin de thread pour ça
tu ouvres une fenêtre et quand tu la fermes, tu ouvres la suivante.
 
Je ne vois pas trop ou est le problème en fait.


 
 
Le problème viens du fait que je dois pouvoir lancer cette succession de fenetre en meme temps plusieurs fois mais independamment les unes des autres. Donc si je n'utilise pas de thread, certains affichages peuvent bloqué les autres affichages (par exemple des message d'information -> JDialog) qui doivent pourtant ce faire independemment les uns des autres.
 
Dans mon cas si par exemple j'ouvre une fenetre (JDialog) si j'ai lancé plusieurs fois mon programme je suis bloqué ---> Manque d'indépendance.
 
Merci d'avance


Message édité par lezert le 18-12-2008 à 13:16:57
Reply

Marsh Posté le 18-12-2008 à 14:00:13    

Tu créés un thread a chaque clic sur ton bouton valider. Ce thread initialise et affiche ta première fenêtre et puis voilà, normalement ça doit régler ton pb.

 

ça donne un truc genre :

 
Code :
  1. public void actionPerformed(ActionEvent e)
  2. {
  3.   Object source= e.getSource();
  4.   if(source==boutonValider) {
  5.     // Exécuter tous les contrôles nécéssaires ...
  6.     Thread monThread = new Thread() {
  7.       @Override
  8.       public void run() {
  9.         // Code nécéssaire pour afficher la première fenêtre...
  10.       }
  11.     }
  12.     monThread.start();
  13.     // Eventuellement conserver la référence de ton thread dans un tableau
  14.     // pour pouvoir le contrôler si besoin plus tard (te synchroniser dessus par ex)
  15.   }
  16. }
 

EDIT : correction faute de frappe


Message édité par superbob56 le 18-12-2008 à 14:01:24

---------------
By bob.
Reply

Marsh Posté le 18-12-2008 à 14:09:39    

Merci beaucoup. Je vais essayé ça !!!

Reply

Marsh Posté le 18-12-2008 à 21:03:59    

Lorsque tu ouvres une fenêtre, le système gère lui-même le multithreading et les events et l'appel n'est pas bloquant.


---------------
Voir les RAW sous Android: https://market.android.com/details? [...] .RawVision Blog Photo: http://photouch.me Applications mobiles: http://caketuzz.com Wapcam Project: http://wapcam.mobi
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed