Attente en Java

Attente en Java - Java - Programmation

Marsh Posté le 23-04-2008 à 19:14:24    

Bonjour,
 
Voila, mon probleme de fermer mon Jframe apres un certain temps !!!
 
Merci d'avance pour vos reponse


Message édité par lezert le 24-04-2008 à 14:25:56
Reply

Marsh Posté le 23-04-2008 à 19:14:24   

Reply

Marsh Posté le 23-04-2008 à 21:04:45    

J'ai reussi a resoudre se probleme a l'aide d'une classe qui extends thread. MAIS ...
 
Classe  
{  
Creation du Jframe avec une image  
 
attente avec un sleep etc...
 
Fermeture du JFrame  
}  
 
---> Si je l'appelle directement ça marche tres bien par contre si je l'appelle dans une autre classe  alors la mon Jframe s'affiche de maniere transparente (il a du mal a se charger) et se ferme sans avoir vu l'image. L'attente fait qu'il n'arrive pas a se charger !!!  
Rq: il ne s'affiche qu'apres l'attente quand j'enleve sa fermeture dans la classe qui le definie.  
 
Comment resoudre se probleme ???  
 
Voila le code si cela peut vous aider:
 

Code :
  1. Volia mes trois classe:
  2. /**
  3. * La classe Attendre extens la methode thread
  4. */
  5. public class Attendre extends Thread
  6. {
  7.     public int temps;
  8.    
  9.     public Attendre(int le_temps)
  10.     {
  11.         temps=le_temps;
  12.     }
  13.    
  14.     public void run()
  15.     {
  16.         try
  17.         {
  18.                 sleep(temps);
  19.         }
  20.         catch(Exception ex){}
  21.            
  22.      }
  23.    
  24. }
  25. /**
  26. * La classe Affichage Info extends un JFrame qui contiendra une image  
  27. */
  28.     public AffichageInfo(String le_titre,String le_message,int le_type)
  29.     {
  30.         setLocationRelativeTo(this);
  31.        
  32.         titre=le_titre;
  33.         message=le_message;
  34.         type=le_type;
  35.        
  36.         panel=new JImage("limage.gif",360,220);
  37.         getContentPane().setLayout(new BorderLayout());       
  38.         this.add(panel,BorderLayout.CENTER);
  39.         this.setPreferredSize(new Dimension(300, 300));
  40.        
  41.         pack();
  42.         setVisible(true);
  43.        
  44.     }
  45. /**
  46. * La classe Jouer va appeller les deux classes precedentes
  47. */
  48. ----------------------- Code ---------------------------------
  49. IHM.AffichageInfo messageinfo = new IHM.AffichageInfo("De","Vous avez fait: " + valeurDe,0 );
  50.            
  51.             IHM.Attendre Attente=new IHM.Attendre(5000);
  52.            
  53.             Attente.start();
  54.             try
  55.             {
  56.             Attente.join();
  57.             }
  58.             catch(Exception ex){}
  59.              messageinfo.dispose();
  60. ------------------------ Code  ------------------------------------
  61.            
  62. /**
  63. * La classe AffichageJeu est la classe principale qui va appellé  la classe jouer
  64. */
  65. public class AffichageJeu extends JFrame implements ActionListene
  66. {
  67. Jouer j= new Jouer(......);
  68. etc .......
  69. // ET DONC ICI L'IMAGE NE S'AFFICHE COMME JE LE PECISE PRECEDEMMENT
  70. }


 
Merci d'avance


Message édité par lezert le 24-04-2008 à 13:10:59
Reply

Marsh Posté le 24-04-2008 à 16:03:10    

Je pense que le probleme vient de la classe Jouer et plus precisement de
 
try
{
Attente.join();
}
catch(Exception ex){}
 
En effet, lorsque je le met pas l'affiche s'affiche nickel et disparait automatiquement au bout d'un certain temps, mais le probleme c'est que sans attente.joint() le programme continue à defiler et donc ça ne me va pas !!! En effet, le attent.joint() permet il me semble d'ttendre la fin du thread avant de passer a la suite.
 
Si quelqu'un à une solution, je le remercie d'avance ca ça fait deux jours que je bloque !!!!  
       

Reply

Sujets relatifs:

Leave a Replay

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