[JAVA] fermer une Jdialog

Résolu
le tanard -  
maily Messages postés 7560 Statut Contributeur -
Bonjour,

J'ai programmé une applet dans laquelle je lance une JDialog.
Mon probleme, c'est que je n'arrive pas à fermer correctement cette JDialog.

J'ai essayé maJDialog.dispose(), mais le problème c'est que je ne peux pas relancer ce JDialog quand je quitte l'applet, puis que je reviens dessus.

Je ne veux pas utliser systeme.exit, parce qu'a la sortie du JDialog, j'ai encore besoin d'utiliser mon applet.

Qu'est ce que vous me conseillez ?

Merci

9 réponses

  1. maily Messages postés 7560 Statut Contributeur 453
     
    Bonjour.

    Pourquoi veux tu fermer ta JDialog? Le garbage collector s'en occupera. Ton seul problème à mon avis est de faire en sorte qu'il soit visible ou non. Et en général, l'utilisateur en cliquant sur "close" le fait!

    1
  2. le tanard
     
    Bonne idée mais...
    Si je la cache, et que je veux y retourner après, il va m'en ouvrir une nouvelle non? Or je veux garder la précédente, avec toutes les modifications que j'ai pu y apporter.

    Je ne veux pas en ouvrir plusieurs occurences, mais la "rouvrir" si elle a déjà été ouverte. C'est possible ce genre de choses? Comment détecter si elle a déjà été ouverte ou non?

    Merci pour ton aide
    1
  3. choubaka Messages postés 5535 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    ben voilà ! :-)
    1
  4. maily Messages postés 7560 Statut Contributeur 453
     
    Alors... il faut garder ta variable quelque part! A priori ce serait une variable privée de ton applet.
    En fait, au moment ou tu crées ta JDialog (avec le new), il faut que tu ai une variable de type JDialog qui y sera égal que tu ajouteras par la suite à ton applet!

    Peux tu mettre le code de la création de ta jdialog et l'endroit ou tu l'ajoutes dans ton applet silteplé?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. le tanard
     
    Voila mon code épuré des trucs qui n'ont rien a voir avec le problème :

    Pour le lancement, je fais un appel de la fonction InitialisationIntervenants dans l'applet :
    public void actionPerformed(ActionEvent e) {
            if (e.getSource() instanceof JMenuItem) {
                
                 if (ChoixMenus.equals("Intervenants..."))
                    new InitialisationIntervenants ();
    


    Et voila la classe ou est definie la fonction :

    public class InitialisationIntervenants extends JDialog {
        
         JDialog Cadre = new JDialog();
         JButton Sortie = new JButton("Sortie");
        
        public InitialisationIntervenants() {
           
            JPanel BackGround = new JPanel();
            
            //Boutons
             
                        BackGround.add(Sortie);
                        
                        Sortie.addActionListener(new ActionListener() {
                            public void actionPerformed(ActionEvent e) {
                               Cadre.dispose();}
                               } );
                        
                        //Tracage des tableaux
                        Cadre.setContentPane(BackGround);
                        Cadre.setSize(widthFenetre, heightFenetre);
                        Cadre.setLocation((widthScreen - widthFenetre) / 2, (heightScreen - heightFenetre) / 2);
                        
                        //Affichage du cadre
                        Cadre.show(); }
        
    }
    


    je crois qu'il dois y avoir tout ce qu'il faut.
    0
  7. maily Messages postés 7560 Statut Contributeur 453
     
    Rapidement, un conseil, je regarde après plus attentivement:

    Les new, fais les dans le constructeur et la première lettre des variables en miniscule:

    JDialog cadre = null;
         JButton sortie = null;
        
        public InitialisationIntervenants() {
           
             JPanel backGround = new JPanel();
             cadre = new JDialog();
             sortie = new JButton("Sortie");
             ...


    Ensuite, une question. Qu'entends tu par tu n'arrives pas à fermer correctement ta jdialog. Qu'aimerais tu exactement faire? Qu'est ce qu'il se passe quand tu essayes de fermer? Avec quel bouton de jdialog tu essayes de le faire?
    0
  8. le tanard
     
    Merci !

    C'est impec, maintenant ca fonctionne comme je le veux.

    Merci à tous les deux pour le temps que vous m'avez consacré
    0
  9. maily Messages postés 7560 Statut Contributeur 453
     
    :)
    0