[java] comment separé l affichage du traitement

comment separé l affichage du traitement [java] - Java - Programmation

Marsh Posté le 10-05-2002 à 13:45:48    

j ai un programme qui se connecte a une base a distance le probleme c que lorsqu il met du temp a se connecter , la frame devien grise.. on m a dit qu il falait créer un thread different pour l affichage et un autre pour le traitement ...
c bien bo tout ca mais je vois pas comment je peux faire pour mettre une boucle ds la partie qui se connecte:
 
 public  void  actionPerformed(ActionEvent e)  
 {
host=hostField.getText();
  user =loginField.getText();
  pass = new String (passField.getPassword());
  base = baseField.getText();
 
apres j ai la connexion proprement dite...
}
 
c quoi que je doit changer ? chui paumé la

 

[jfdsdjhfuetppo]--Message édité par heink le 10-05-2002 à 13:47:15--[/jfdsdjhfuetppo]


---------------
:heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink:
Reply

Marsh Posté le 10-05-2002 à 13:45:48   

Reply

Marsh Posté le 10-05-2002 à 13:54:25    

Si tu lis un peu les specs ou bien le modèle d'évenement en général, tu remarqueras assez vite qu'on insiste sur le fait qu'il faut faire un minimum de choses dans une méthode qui réagit à un évenemenet (comme par exemple actionPerformed).
 
Dans ton cas tu dois avoir un process // (Thread) qui s'occupe de se connecter à ta BD.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 10-05-2002 à 13:58:51    

DarkLord a écrit a écrit :

Si tu lis un peu les specs ou bien le modèle d'évenement en général, tu remarqueras assez vite qu'on insiste sur le fait qu'il faut faire un minimum de choses dans une méthode qui réagit à un évenemenet (comme par exemple actionPerformed).
 
Dans ton cas tu dois avoir un process // (Thread) qui s'occupe de se connecter à ta BD.  




merci de ta reponse
je doit ajouter ceci:
il n y a qu un bouton donc un seul evenement possible ( c une interface tres simple)
puis j ai ajouter ca a mon code
 
 public void run()
 {
  while(true)
  {
   if(!dbCon.isConnected())
   {
   System.out.print("Connection impossible au serveur "+ host);  
   return;
   }
   else
   {
   //traitement en consequence...
   }  
  try  
       { runner.sleep((int)(Math.random()*1000));  
       }  
       catch(InterruptedException e) { }  
 
  }
 }
et j ai ajouter ca au Actionperformed
 runner=new Thread (this);
 runner.start();
 
ca marche toujours pas: le fenetre reste grise lorsque c trop long ou que j ai pas le bon "host"
 
 
c est ou que ca cloche?


---------------
:heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink:
Reply

Marsh Posté le 10-05-2002 à 14:00:55    

tu dois créer ton thread avant et simplement appeler start dans actionPerformed.
 
De plus tu dois créer un objet séparé qui implémenter Runnable puis faire  
 
Thread t = new Thread(new TonOjbet(TesParams));
 
 
puis dans ton actionPerformed
 
t.start();
 
mais sans savoir ce que ca fait je ne sais pas plus t'aider


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 10-05-2002 à 14:12:17    

mais la methode run reste la meme donc si j ai bine compris sauf qu elle se trouve ds un objet heritant de Thread?


---------------
:heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink:
Reply

Marsh Posté le 10-05-2002 à 14:22:49    

oui mais tu transforme ton obj en thread


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 10-05-2002 à 14:37:05    

bon en gros le schema ...
 
un objet qui extends Thread ou implements Runnable
et qui dans la methode run realise la connexion
 
dans ta methode actionPerformed tu appelles juste la methode start de ton objet

Reply

Marsh Posté le 10-05-2002 à 14:44:14    

HappyHarry a écrit a écrit :

bon en gros le schema ...
 
un objet qui extends Thread ou implements Runnable
et qui dans la methode run realise la connexion
 
dans ta methode actionPerformed tu appelles juste la methode start de ton objet  




 
c mot pour mot ce que j ai fait! mon objet etend Runnable!
 
darklord>>pourquoi créer un thread? implementé Runnable revien au meme ds mon cas non?


---------------
:heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink:
Reply

Marsh Posté le 10-05-2002 à 14:45:11    

bin gros malin, si l'objet qui réagit à actionPerformed est le meme que celui qui implémente Runnable (en d'autres termes new Thread(this)
 
je ne vois pas l'intéret de faire un thread  :heink:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 10-05-2002 à 14:49:48    

regarde la javadoc de Thread ... elle est bien explicite.
 
en gros : c'est le Thread qui gère tout le mécanisme. les Runnable c'est juste le code que tu vas executer à l'intérieur du thread.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2002 à 14:49:48   

Reply

Marsh Posté le 10-05-2002 à 14:53:33    

DarkLord a écrit a écrit :

bin gros malin, si l'objet qui réagit à actionPerformed est le meme que celui qui implémente Runnable (en d'autres termes new Thread(this)
 
je ne vois pas l'intéret de faire un thread  :heink:  



.
 
 
je ne comprend pas tout excuse moi pour ne pas avoir la science infuse
vous etes des pros et vous m aider c vraiment sympa de votre part mais vous poouvez pas m en vouloir de pas comprendre,je fait des efforts!


---------------
:heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink:
Reply

Marsh Posté le 10-05-2002 à 15:01:19    

je dis. Si tu as un objet A qui répond à un évenement de type click de souris, on t'explique que tu dois déléguer cette tache lourd à un composant séparé (soir un Objet B qui fait ca en parralèle --> Thread)
 
Or toi ce que tu fais c'est un objet qui:
 
1. Implemente la méthode actionPerformed
2. Implemente Runnable
 
-> A et B chez toi c'est le meme objet donc tu ne délègues que dale.
 
Est ce plus clair?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 10-05-2002 à 15:03:38    

Citation :


Threads and Event Handling  
Event-handling code executes in a single thread, the event-dispatching thread. This ensures that each event handler will finish executing before the next one executes. For instance, the actionPerformed method in the preceding example executes in the event-dispatching thread. Painting code also executes in the event-dispatching thread. This means that while the actionPerformed method is executing, the program's GUI is frozen -- it won't repaint or respond to mouse clicks, for example.  
 
--------------------------------------------------------------------------------
Important:  The code in event handlers should execute very quickly! Otherwise, your program's perceived performance will be poor. If you need to perform some lengthy operation as the result of an event, do it by starting up another thread (or somehow sending a request to another thread) to perform the operation. For help on using threads, see How to Use Threads.  
--------------------------------------------------------------------------------
 


 
http://java.sun.com/docs/books/tut [...] event.html


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 10-05-2002 à 15:06:06    

Super
j en apprend beaucoup!
en fait j apprend le java mais je n ai pas de prof je fait avec les tuts du net
 
 
merci pour le lien
 :hello:


---------------
:heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink:
Reply

Marsh Posté le 10-05-2002 à 15:09:17    

heink a écrit a écrit :

.
je ne comprend pas tout excuse moi pour ne pas avoir la science infuse
vous etes des pros et vous m aider c vraiment sympa de votre part mais vous poouvez pas m en vouloir de pas comprendre,je fait des efforts!  




Je te présente DarkLord, l'ami des newbies...
Regarde un coup adns la javadoc la class Thread. Tu y trouveras toutes les infos.
Après, si y a un truc que tu comprends pas, demande ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2002 à 15:16:48    

benou a écrit a écrit :

 
Je te présente DarkLord, l'ami des newbies...
Regarde un coup adns la javadoc la class Thread. Tu y trouveras toutes les infos.
Après, si y a un truc que tu comprends pas, demande ...  




 
merci c super sympa  :)


---------------
:heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink:
Reply

Marsh Posté le 10-05-2002 à 15:20:44    

benou a écrit a écrit :

 
Je te présente DarkLord, l'ami des newbies...




 
it's me  :kaola:  
 
 :sweat:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 10-05-2002 à 15:22:26    

DarkLord a écrit a écrit :

 
it's me  :kaola:  
 :sweat:  




allez, fait pas la tronche ... c'est bientot le weekend !


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2002 à 15:32:13    

DarkLord a écrit a écrit :

 
 
it's me  :kaola:  
 
 :sweat:  




 
fais pas ton gros vilain dark :)

Reply

Marsh Posté le 10-05-2002 à 15:33:49    

benou a écrit a écrit :

 
allez, fait pas la tronche ... c'est bientot le weekend !  




 
trop tard, tu m'as vexé. Et ton pdf sur la crypto tu peux te le mettre ou je pense :D
 
 
 :lol:  
 
 :hello:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 10-05-2002 à 15:48:07    

detournement de topic powwa  :sol:

Reply

Marsh Posté le 10-05-2002 à 18:21:23    

DarkLord a écrit a écrit :

 
trop tard, tu m'as vexé. Et ton pdf sur la crypto tu peux te le mettre ou je pense :D




:(
 
dark il est pas gentil avec moi :cry:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2002 à 18:22:15    

ah bin je suis chez moi justement
 
wait je regarde tout de suite.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 10-05-2002 à 18:23:43    

DarkLord a écrit a écrit :

ah bin je suis chez moi justement
wait je regarde tout de suite.  




:) cool !
 
sinon, heink, tu t'en es sortit avec ton problème ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2002 à 18:27:44    

yes merci  :hello:


---------------
:heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink: :heink:
Reply

Marsh Posté le 10-05-2002 à 18:30:19    

pour l'instant je n'ai retrouvé qu'un travail sur PGP et il brosse pas mal de choses concernant l'infrastructure PKI
 
http://www.info.fundp.ac.be/~snicoll/crypto/PGP.doc


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 10-05-2002 à 18:49:48    

DarkLord a écrit a écrit :

pour l'instant je n'ai retrouvé qu'un travail sur PGP et il brosse pas mal de choses concernant l'infrastructure PKI
 
http://www.info.fundp.ac.be/~snicoll/crypto/PGP.doc  




Je prend. merci.
t'embêtes pas si tu retrouves pas, hein. Je peux chercher tout seul ! ;)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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