Fermer un JInternalFrame

Résolu
ramalisy - 12 oct. 2012 à 10:21
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 24 oct. 2012 à 16:16
J'ai deux InternalFrame ouvert dans ma fenêtre, et je veux fermer InternalFrame active en cliquant sur le Menu "Fichier">"Ferme".
aide mois SVP Merci d'avance.

10 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
12 oct. 2012 à 10:35
Salut,

Tu as la méthode setVisible(false)
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
15 oct. 2012 à 09:14
Sur le JDesktopPane : desktop.getSelectedFrame()
3
C'est que je veux est fermer InternalFrame en cours. mais, je ne peut pas écrire le code qui spécifie InternalFrame active.
Merci.
0
Oh! ça marche, Merci Julien39.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
16 oct. 2012 à 14:19
Ok, petite précision, si aucune fenêtre n'est active, cette méthode retourne null. Attention donc, dans ce cas, tu risques de lever une nullPointerException.
0
J ai essaie cela et ça marche. Mais, maintenant je décide de fermer tous les JInternalFrame dans JDesktopPane. Est-ce que c’est possible ? Comment ?
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
23 oct. 2012 à 15:00
rtfm : http://docs.oracle.com/javase/6/docs/api/javax/swing/JDesktopPane.html

 JInternalFrame[]	getAllFrames() 
          Returns all JInternalFrames currently displayed in the desktop.
0
j ai trouvé ça dans le rtfm que tu m a donné:
public class Fermer extends JDesktopPane {

   void toutFermer(){
      JInternalFrame [] Frames = getAllFrames();
      try{
         for( int i = 0; i<Frames.length; ++i)
            Frames[i].setClosed(true);
      }catch(PropertyVetoException pve){}
   }
}

puis j l ai mis dans actionPerformed de mon jButton, private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Direction_Ajout f = new Direction_Ajout();
f.show();
}
mais aucun effet. A tu une idée?
0
désole je fait une erreur, je veux dire sur la dernière paragraphe :
public class Fermer extends JDesktopPane {

   void toutFermer(){
      JInternalFrame [] Frames = getAllFrames();
      try{
         for( int i = 0; i<Frames.length; ++i)
            Frames[i].setClosed(true);
      }catch(PropertyVetoException pve){}
   }
}


je mis les code dans actionPerformed de mon jButton comme suit:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
new Fermer();
} 

mais aucun effet. A tu une idée?
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
24 oct. 2012 à 16:16
Salut,

Tu n'as pas de listener jButton2ActionPerformed n'est pas la bonne méthode à implémenter.

button.addActionListener(new ActionListener(){
   @Override
   public void actionPerformed(ActionEvent e){
      new Fermer();
   }
});


Le nom de la méthode a une importance, il faut le respecter.
0
Rejoignez-nous