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

Langage Java Discussion :

Problème boucle while


Sujet :

Langage Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 78
    Points : 46
    Points
    46
    Par défaut Problème boucle while
    Bonjour,

    Je travail sur une fenêtre de type "save as" permettant de sauvegarder un fichier. A condition que se dernier soit sauvegardé avec un nom au bon format et que le nom n'appartienne pas déjà à un fichier existant.

    Voici mon bout de code :

    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
               boolean close_popup = false;
                File userFile = null;
                File newFile = null;                   
     
                while(newFile == null && !close_popup) { 
                    //ouverture d'une fenêtre save as
                    userFile = dbFileChooser.getSelection();
                   //build le fichier et vérifie le bon format, si mauvais format =>      popup alerte
                    newFile = buildNewFile(userFile, true);
     
                    if(userFile == null) {
                        close_popup = true; 
                    }
                }
                if(newFile != null) {
                   //si le nom du fichier sauvegarder porte le nom d'un fichier déjà existant
                   while(newFile.exists()) {
                            warning(getActionLabel(saveAsLabel), getTranslation("FileAlreadyExists"));
                            userFile = dbFileChooser.getSelection();
                            newFile = buildNewFile(userFile, true); 
     
                            if(userFile == null) {
                                close_popup = true;
                            }
                   }
                if(newFile.exists() == false) {
                        OdVerDbFile newDb = OdVerDbFile.build(newFile, false);
                        newDb.saveFrom(m_MainDb);                    
    //lance directement le fichier créé       
                        OdVerDbAdministrator.get().openMainDB(newFile.getAbsolutePath(), true);
                        OdMenLruManager.get().addRecentFile(newFile);     
                    } 
                }

    Mon problème se situe au niveau du while(newFile.exists()) ligne 17.

    Si jamais je sauvegarde avec un nom de fichier qui existe déjà alors j'ai une popup qui s'affiche et me dit "fichier déjà existant". Et si ensuite je ferme la fenêtre du save as mon programme plante (c'est là qu'est mon problème).

    Je pense que c'est peut être du à ma condition de sortie de ma boucle while qui est pas bonne.

    Pouvez vous m'aider.

    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while(newFile.exists()) {
                            warning(getActionLabel(saveAsLabel), getTranslation("FileAlreadyExists"));
                            userFile = dbFileChooser.getSelection();
                            newFile = buildNewFile(userFile, true); 
     
                            if(userFile == null) {
                                close_popup = true;
                            }
    }
    Si newFile devient NULL dans ta boucle, à l'itération suivante tu aura une NullPointerException sur newFile.exists(). Tu dois corriger ta condition de boucle. Ou faire en sorte que buildNewFile() ne retourne jamais NULL.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    J'ai oublié de te répondre, excuses moi.

    Je te remercie pour cette info qui m'aide à voir plus claire, je vais regarder comment je peux faire.

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

Discussions similaires

  1. Problème boucle while
    Par Peedro dans le forum Langage
    Réponses: 4
    Dernier message: 07/10/2008, 14h09
  2. Problème boucle while
    Par chuko dans le forum C
    Réponses: 7
    Dernier message: 04/07/2008, 16h12
  3. Problème boucle while
    Par fred33 dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2008, 19h16
  4. [MySQL] Problème boucle WHILE
    Par Adlack dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/02/2007, 19h30
  5. Problème boucle while et evenement
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 30/03/2006, 18h11

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