IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

[JOptionPane] Problème avec une boite de sauvegarde


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 75
    Par défaut [JOptionPane] Problème avec une boite de sauvegarde
    salut a tous

    Voila j'ai créé un boite de dialogue de sauvegarde, tout se passe bien lorsque je me sert des boutons oui et non, mais je n'arrive pas à implémenter le bouton annuler de façon à ce que la boite de dialogue disparaisse et que le user puisse retourner à ce qu'il faisait!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int rep=JOptionPane.showConfirmDialog(newPlaylist,"Voulez-vous Enregistrer","Enregistrer",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);
                           System.out.println(rep);
                           if(rep==0)
                           {
                               MenuFileSaveAs_actionPerformed();
                           }
                           else if (rep==1)
                           {
                               newPlaylist.dispose();
                           }
                           else if(rep==2 || rep == -1)
                           {
                               // qu'est ce qu'il faut que je mette???
                           }
    Merci de vos reponses

  2. #2
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    juste
    ...ha non, cela peut te fermer la fenetre parente....

    Ben je pense qu'en ne mettant rien, ta fenetre de dialog doit disparaitre sans rien faire, non?!

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Dans un premiers temps, utilises les constantes JOptionPane.YES_OPTION, JOptionPane.NO_OPTION, JOptionPane.CANCEL_OPTION et JOptionPane.CLOSED_OPTION au lieu d'utiliser les valeurs en dur ( -1, 0, 1et 2). C'est à la fois plus propre et plus lisible...

    Ensuite je dirais que tu n'as rien à faire puisque tu annules l'opération...
    D'où ma question ? Que se passe-t-il lorsque tu annules ???

    a++

    PS : @Regis.C le dispose() est inutile, il est fait par le JOptionPane...

  4. #4
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par adiGuba
    PS : @Regis.C le dispose() est inutile, il est fait par le JOptionPane...
    Citation Envoyé par Regis.C
    ...ha non, cela peut te fermer la fenetre parente....

    Ben je pense qu'en ne mettant rien, ta fenetre de dialog doit disparaitre sans rien faire, non?!

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Regis.C
    ...ha non, cela peut te fermer la fenetre parente....

    Ben je pense qu'en ne mettant rien, ta fenetre de dialog doit disparaitre sans rien faire, non?!
    heu... tu as édité ta réponse entre temps ou c'est moi qui ai loupé la moitié de la réponse ?????

  6. #6
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par adiGuba
    heu... tu as édité ta réponse entre temps ou c'est moi qui ai loupé la moitié de la réponse ?????


    J'ai ré-editer juste avant que tu ais posté je pense.


  7. #7
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 75
    Par défaut
    c bon j'ai corrigé mais ca me fait toujours la meme chose : quand j'appuie sur annuler il me ferme mon internal frame
    et moi je veux pas

  8. #8
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Regis.C


    J'ai ré-editer juste avant que tu ais posté je pense.

    Ah ok je commencais à croire que je devenais fou

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 75
    Par défaut
    c fou j'y arrive pas!!

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut
    As tu envisagé que ton probleme ne venait pas de ta boite de dialogue parce que le code semble correct.

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 75
    Par défaut
    oui mais je vois pas ou est ce qu'il faut que je change ca

    voila le code en plus complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    private void MenuFileOpen_actionPerformed(ActionEvent e)
      {             
          int taille_fichier,i;
          byte[] contenu_fichier;
          String val=new String();
     
          Filtre tlv = new Filtre("Fichiers playlist *.tlv","tlv");
          JFileChooser chooser = new JFileChooser(".");
          chooser.addChoosableFileFilter(tlv);
          int returnVal = chooser.showOpenDialog(null);           
          fic = chooser.getSelectedFile();      
          //récupère tout le chemin du fichier 
          chemin_fichier= fic.getPath();
          fic_tmp=fic;
     
          final New_Playlist newPlaylist= new New_Playlist(this.getSize(),this);    
          if(returnVal == JFileChooser.APPROVE_OPTION)
          {
              this.setTitle("Playlist Maker");
              newPlaylist.setVisible(true);           
     
              if(newPlaylist.isEnabled())
               {
                  MenuFileSave.setEnabled(true);
                  MenuFileSaveAs.setEnabled(true);              
                  save.setEnabled(true);  
                  moinsUn.setEnabled(true);
                  plusUn.setEnabled(true);
                  /*MenuEditCut.setEnabled(true);
                  MenuEditCopy.setEnabled(true);
                  MenuEditPaste.setEnabled(true);
                  MenuEditInsert.setEnabled(true);
                  MenuEditDelete.setEnabled(true);              
                  cut.setEnabled(true);
                  copy.setEnabled(true);
                  paste.setEnabled(true);*/
     
              }
              Dimension size = nouve.getPreferredSize();
              Dimension frmSize = getSize();
     
              newPlaylist.setBounds(0,0,frmSize.width-7,frmSize.height/2);// - size.height-10      
              panel_bureau.add(newPlaylist, javax.swing.JLayeredPane.DEFAULT_LAYER);   
              panel_bureau.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);  
              getContentPane().add(panel_bureau, java.awt.BorderLayout.CENTER);
     
               try
               {
                  newPlaylist.setSelected(true);
               }
               catch(java.beans.PropertyVetoException e1){          
               }   
     
               try
               {
                     FileInputStream fichier= new FileInputStream (chooser.getSelectedFile());
                     taille_fichier=fichier.available(); // on recupere la taille du fichier
                     contenu_fichier=new byte[taille_fichier]; // creation d'un tableau
     
                     for (i=0;i<taille_fichier;i++)
                     {
                         contenu_fichier[i]= (byte)fichier.read();  // rempli le tableau avec le contenu du fichier
                         val=toHexString(contenu_fichier);  // converti le contenu du fichier en hexa                       
                     }                               
                     fichier.close();                                                                                         
               }                             
               catch (FileNotFoundException e1)
               {
                     System.out.println("Exception : "+e1);
               }
               catch(IOException e2)
               {
                     System.out.println("Exception : "+e2);
               }
     
               element elt_racine = new element("racine",null);                   
               syntaxe_tlv syntaxe = new syntaxe_tlv();                                      
               syntaxe.decode(val, elt_racine);        
               Extraction extract=new Extraction();
               Playlist_Evt playlist = new Playlist_Evt();
               playlist=extract.Extract(elt_racine);       
               Elementary_Evt evt = new Elementary_Evt();
     
               newPlaylist.remplir(playlist,evt,elt_racine);  
     
     
               newPlaylist.addInternalFrameListener(new InternalFrameAdapter()  {
                    public void internalFrameClosing(InternalFrameEvent inter)             
                    {                     
                        if(inter.getInternalFrame().getDesktopPane().getAllFrames().length==1)
                        {
                           /****** boite de dialogue de sauvegarde ****/                            
                           int rep=JOptionPane.showConfirmDialog(newPlaylist,"Voulez-vous Enregistrer","Enregistrer",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);
                           System.out.println(rep);
                           if(rep==JOptionPane.YES_OPTION)
                           {
                               MenuFileSaveAs_actionPerformed();
                           }
                           else if (rep==JOptionPane.NO_OPTION)
                           {
                               newPlaylist.dispose();
                           }
     
                           /********************************************/
                           MenuFileSave.setEnabled(false);
                           MenuFileSaveAs.setEnabled(false);                       
                           save.setEnabled(false);  
                           moinsUn.setEnabled(false);
                           plusUn.setEnabled(false);
                           setTitle("Playlist Maker");
                           /*MenuEditCut.setEnabled(false);
                           MenuEditCopy.setEnabled(false);
                           MenuEditPaste.setEnabled(false);
                           MenuEditInsert.setEnabled(false);
                           MenuEditDelete.setEnabled(false);                                              
                           cut.setEnabled(false);
                           copy.setEnabled(false);
                           paste.setEnabled(false); */
     
                        }
                    }
                });
              playlist_tmp=newPlaylist;
          }
          else if (returnVal == JFileChooser.CANCEL_OPTION) 
          {
     
          }
      }
    cette partie de code fait appartient a ma mainFrame

  12. #12
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Par défaut
    si je comprends bien New_PlayList est un extends de JFrame ?

  13. #13
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 75
    Par défaut
    newPlaylist est un extend de JInternalFrame

  14. #14
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Par défaut
    je viens de tester le code ci-dessous sur ma JFrame et ça marche nickel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int rep = JOptionPane.showConfirmDialog(this,"Voulez-vous Enregistrer","Enregistrer",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE); 
                System.out.println(rep); 
                if(rep == JOptionPane.OK_OPTION) { 
                    System.out.println("c'est bon YES"); 
                } 
                else if (rep == JOptionPane.NO_OPTION) { 
                	System.out.println("c'est bon NO"); 
                } 
                else if (rep == JOptionPane.CANCEL_OPTION) {
                	System.out.println("c'est bon CANCEL");
                }
    c'est donc sûr que ça ne vient pas de ta boîte de dialogue, moi je pense que ça viendrait peut-être de l'objet associé (this chez moi qui est ma JFrame et new_PlayList chez toi)

  15. #15
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Il fallait indiquer de suite qu'il s'agissait de l'evenement de fermeture de fenêtre...

    Cet évenement est appellé avant la fermeture de la fenêtre, donc c'est normal qu'elle soit fermé ensuite...

    Pour éviter cela, il faut que tu changes l'action a effectuer lors de la fermeture avec la méthode setDefaultCloseOperation()...

    a++

  16. #16
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 75
    Par défaut
    ouais je viens de le remarquer c bon ca marche nickel du coup
    merci beaucoup tout le mde

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec une UDF
    Par kanmaber dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/08/2004, 00h42
  2. [JBOSS] [Struts] Problème avec une application
    Par Tiercel dans le forum Wildfly/JBoss
    Réponses: 5
    Dernier message: 13/07/2004, 14h50
  3. Problème avec une instruction OUTER /Postgres
    Par Volcomix dans le forum Langage SQL
    Réponses: 14
    Dernier message: 21/04/2004, 17h56
  4. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 11h29
  5. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo