Fermer un JInternalFrame [Résolu]

Signaler
-
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
-
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

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
Salut,

Tu as la méthode setVisible(false)
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
Sur le JDesktopPane : desktop.getSelectedFrame()
C'est que je veux est fermer InternalFrame en cours. mais, je ne peut pas écrire le code qui spécifie InternalFrame active.
Merci.
Oh! ça marche, Merci Julien39.
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
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.
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 ?
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
rtfm : http://docs.oracle.com/javase/6/docs/api/javax/swing/JDesktopPane.html

 JInternalFrame[]	getAllFrames() 
          Returns all JInternalFrames currently displayed in the desktop.
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?
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?
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
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.