Fermeture d une jinternalframe [Résolu]

Messages postés
6
Date d'inscription
jeudi 10 juin 2010
Dernière intervention
28 mai 2011
- - Dernière réponse :  Utilisateur anonyme - 11 mai 2011 à 18:25
Bonjour,

Apres avoir chercher sur le net,je ne trouve pas toujours une solution a mon probleme que je vais essayer de vous expliquer et qui certainement n est pas aussi galere pour vous.

J ai un menu avec et je veux qu a chaque fois que je clique sur un menu une jinternalframe s affiche et que l autre se desactive car j ai besoin d appeler une fonction a la fermeture de chaque jinternalframe et qui est propre a la jinternalframe.

Mon probleme est que le setVisible(false)/(true) me donne des erreurs et ne desactive pas la jinternalframe pour que le code de internalFrameDeactivated s execute.

SVP aidez moi a resoudre ce probleme.
Merci.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
6
Date d'inscription
jeudi 10 juin 2010
Dernière intervention
28 mai 2011
3
Merci
juste pour tout autre ayant besoin d une solution en fait le probleme est que j utilise plusieurs JInternalframes alors qu il suffit d utiliser une seule et pour chaque actionperformed on fait le condition:
//f est mon jinternalframe
if(f!=null){
desktop.remove(f);//desktop est mon desktopane
f.setclosed(true);
}



et dans chaque classe on ajoute un jinternal listener internalframeclosed et on y mets ce qu on desire executer a la fermeture.

Voila,pour moi sa a marche et merci pour toutes vos suggestions.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 111 internautes nous ont dit merci ce mois-ci

Commenter la réponse de sarassef
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
272
0
Merci
Tu peux ajouter à ta JInternalFrame un WindowListener avec la commande
addWindwowListener(new Fermeur())


Où la classe Fermeur peut être :
public class Fermeur implements WindowListener {

   public void windowOpened(WindowEvent e){

   }
   public void windowClosing(WindowEvent e){

   }
   public void windowClosed(WindowEvent e){

   }
   public void windowIconified(WindowEvent e){

   }
   public void windowDeinconified(WindowEvent e){

   }
   public void windowActivated(WindowEvent e){

   }
   public void windowDeactivated(WindowEvent e){

   }

}


Dans les fonction, tu pourras spécifier le comportement de ta fenêtre lorsqu'on la ferme (entre autres). Si tu as des soucis, jette un œil sur la doc de sun.
Commenter la réponse de cs_Julien39
Messages postés
6
Date d'inscription
jeudi 10 juin 2010
Dernière intervention
28 mai 2011
0
Merci
je sais qu il y a cette methode mais le probleme c est que mes jinternalframes sont sans bordures ni boutons de fermetures et iconisation donc je dois le faire autrement et les setVisible(true) et false me donnent que des erreurs
Commenter la réponse de sarassef
Messages postés
6
Date d'inscription
jeudi 10 juin 2010
Dernière intervention
28 mai 2011
0
Merci
bon voila un peu ce que j ai fait et qui ne marche pas
public class index extends JFrame implements ActionListener{
    /**
 * 
 */
private static final long serialVersionUID = 1L;
//components
    JMenuBar index=new JMenuBar();
    JMenu cpt=new JMenu("Compte"); 
    JMenu clnt=new JMenu("Client"); 
    JMenuItem agnc=new JMenuItem("Agence"); 
    JMenuItem creer=new JMenuItem("Créer");JMenuItem creer2=new JMenuItem("Créer");
    JMenuItem consulter=new JMenuItem("Consulter");JMenuItem consulter2=new JMenuItem("Consulter");
    
    JDesktopPane desktop = new JDesktopPane();
    JInternalFrame cptcreer;
    JInternalFrame cptconsulter;
    JInternalFrame clntcreer;
    JInternalFrame clntconsulter;
    JInternalFrame agence;
    
    public index(String s){
    	setTitle(s);
    	setSize(700,400);
    	setLocationRelativeTo(null);
    	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	setJMenuBar(index);
    	index.add(cpt);index.add(clnt);index.add(agnc);
    	clnt.add(creer);clnt.add(consulter);
    	cpt.add(creer2);cpt.add(consulter2);
    	
    	
    	
    	creer.addActionListener(this);
    	creer2.addActionListener(this);
    	consulter.addActionListener(this);
    	consulter2.addActionListener(this);
    	agnc.addActionListener(this);
    	getContentPane().add(desktop);
        show();
     
    }
    
   public void actionPerformed(ActionEvent e){
   if(e.getSource()==creer){

  clntcreer = new creer_client(); 	          
          clntcreer.setSize(this.getSize());   
          clntcreer.setVisible(true); 
          desktop.add(clntcreer);    
          try{clntcreer.setSelected(true);}catch(Exception a){a.printStackTrace();}  
   }
   if(e.getSource()==consulter){
   fermer();
      clntconsulter = new consulter_client(); 	          
          clntconsulter.setSize(this.getSize());   
          clntconsulter.setVisible(true); 
          desktop.add(clntconsulter);    
          try{clntconsulter.setSelected(true);}catch(Exception a){a.printStackTrace();}  
   }
   if(e.getSource()==creer2){
   fermer();
      cptcreer = new Compte_Creer(); 	          
          cptcreer.setSize(this.getSize());   
          cptcreer.setVisible(true); 
          desktop.add(cptcreer);    
          try{cptcreer.setSelected(true);}catch(Exception a){a.printStackTrace();}  
        } 
   if(e.getSource()==consulter2){
   fermer();
      cptconsulter = new Compte_Consulter(); 	          
          cptconsulter.setSize(this.getSize());   
          cptconsulter.setVisible(true); 
          desktop.add(cptconsulter);    
          try{cptconsulter.setSelected(true);}catch(Exception a){a.printStackTrace();}  
        } 
   if(e.getSource()==agnc){
      fermer();
      agence = new agences(); 	          
          agnc.setSize(this.getSize());   
          agnc.setVisible(true); 
          desktop.add(agnc);    
          try{agnc.setSelected(true);}catch(Exception a){a.printStackTrace();}  
        } 
  
   }
   
   public void fermer(){
   if(agence.isVisible()){
   agence.setVisible(false);
   }
   if(clntcreer.isVisible()){
   clntcreer.setVisible(false));
   }
   if(clntconsulter.isVisible()){
   clntconsulter.setVisible(false);
   }
   if(cptcreer.isVisible()){
   cptcreer.dispose();
   }
   if(cptconsulter.isVisible()){
   cptconsulter.setVisible(false);
   }
   
   }
   }
    


Et dans chaque classe que j appelle il y a une methode internalFrameDeactivated pour appeler une fonction de sauvegarde de donnees.

???y a t il des suggestions???
Commenter la réponse de sarassef
0
Merci
J'ai l'impression que dans ton actionPerformed tu utilises le setSelected(true) sur ta JnternalFrame mais je pense que dans le même If tu devrais mettre toutes les autres à false avec setSelected


--
Pylouq (actuellement jongleur de clavier AZERTY et de clavier QWERTZ)
Commenter la réponse de Utilisateur anonyme
Messages postés
6
Date d'inscription
jeudi 10 juin 2010
Dernière intervention
28 mai 2011
0
Merci
comment mettre le probleme resolu???:) dsl pour cette question mais je vois pas comment faire
Commenter la réponse de sarassef
0
Merci
Clique sur Réponse acceptée qui est présent sur ton avant dernier message. C'est lui qui a la solution, donc c'est lui qui t'as aidé et t'as permis de résoudre le problème

--
Pylouq (actuellement jongleur de clavier AZERTY et de clavier QWERTZ)
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.