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

 Java Discussion :

Probleme de JFileChooser


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 64
    Par défaut Probleme de JFileChooser
    je souhaite tout bêtement savoir si l'utilisateur a cliqué sur ok ou cancel
    pour effectué un traitement différent
    malheureusement, les deux options me renvoi 0

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void jButtonGenerarOrinaActionPerformed(java.awt.event.ActionEvent evt) {                                                    
        //on fait choisir l'emplacement souhaiter pour le fichier
        int x = ba_rchhAlumno.WIDTH / 2;
        int y = ba_rchhAlumno.HEIGHT / 2;
        SimpleDateFormat f = new SimpleDateFormat("dd-MM-yyyy");
        Date d = new Date();
        d.getTime();
        String name_file = "ExamenOrina_" + f.format(d) + ".xls";
        this.jFileChooserAlumno.setSelectedFile(new File(name_file));
        this.jFileChooserAlumno.setLocation(x, y);
        val = this.jFileChooserAlumno.showSaveDialog(this);
        this.jFileChooserAlumno.setVisible(true);
    }
    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
    private void jFileChooserAlumnoActionPerformed(java.awt.event.ActionEvent evt) {
        boolean b = false;
        System.out.println(val);
     
        if (val == JFileChooser.APPROVE_OPTION) {
            File file = this.jFileChooserAlumno.getSelectedFile();
            try {
                b = a_template.u.genererExcelOrina(file);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(ba_rchhAlumno.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SQLException ex) {
                Logger.getLogger(ba_rchhAlumno.class.getName()).log(Level.SEVERE, null, ex);
            }
            System.out.println(b);
            if (b) {
                this.jLabel1.setText("La lista ha sido registrada a la dirección siguiente : " + file.getPath());
            } else {
                this.jLabel1.setText("La lista no pudo ser registrada a la dirección siguiente : " + file.getPath());
            }
            //si on ne trouve pas d'élève on le signale à l'utilisateur
            this.jDialogAlumno.setModalityType(ModalityType.APPLICATION_MODAL);
            this.jDialogAlumno.pack();
            this.jDialogAlumno.setLocationRelativeTo(ba_rchhAlumno.this);
            this.jDialogAlumno.setVisible(true);
        } else {
            this.jFileChooserAlumno.setVisible(false);
        }
    }
    edit :

    1er essai :
    if (val == JFileChooser.APPROVE_OPTION)
    val est toujours à 0 donc pas moyen d'entrer dans la boucle

    2eme tentative
    if (val != JFileChooser.CANCEL_OPTION)
    val renvoie bien 1 à un moment quand il faut,
    mais ca fait l'inverse de ce que ça devrait logiquement faire

    3eme tentative
    if (val == JFileChooser.CANCEL_OPTION)
    ca fait toujours l'inverse, mais c'est que je veux finalement

    sauf que val se remet à renvoyer 0

    edit :

    en fait les if marche bien
    c'est "val" qui ne renvoie pas toujours la valeur qu'il devrait
    je ne sais pas pourquoi il est tant instable

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    salut.
    si tu veux ouvrir un fichier, alors tu dois utiliser ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    JFileChooser fileOuvrir= new JFileChooser();
     
    if (fileOuvrirImage.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
    File fichier =  new File(fileOuvrir.getSelectedFile().getAbsolutePath();
    sinon ,pour enregistrer un fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    JFileChooser fileEnregistrer = new JFileChooser();
                 
     if (fileOuvrirImage.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
     File fichier =  new File(fileEnregistrer.getSelectedFile().getAbsolutePath();
    voila. j'espère avoir répondu à ta question.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 64
    Par défaut
    tu me confirmes que j'utilise les bonnes méthodes

    seulement showSaveDialog me renvoie toujours 0

    et je suis obligé de le récupérer là où je le récupère

    d'autre part je dois savoir le chemin de mon fichier
    pour pouvoir le créer. dans les cas où val est bon,
    ceci marche parfaitement.

    ce que je ne comprend pas c'est pourquoi val prends la valeur qui lui chante, en faite.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Par défaut
    bonjour,

    pour moi deja tu a une ligne de trop quand tu veut afficher le JFC

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.jFileChooserAlumno.setVisible(true);
    c'est la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val = this.jFileChooserAlumno.showSaveDialog(this);
    qui vas faire l'affichage.

    de plus cette méthode n'a pas lieu d'être ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void jFileChooserAlumnoActionPerformed(java.awt.event.ActionEvent evt)
    tu peut prendre sons code et le passé dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void jButtonGenerarOrinaActionPerformed(java.awt.event.ActionEvent evt)
    comme cela quand tu arrive sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val = this.jFileChooserAlumno.showSaveDialog(this);
    t'a fenêtre principale attend que le JFC soit fermer et récupère en même temps la valeur de val

    par la suite tu fait ton traitement

    ce qui doit donné qq'chose comme ça:
    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
    private void jButtonGenerarOrinaActionPerformed(java.awt.event.ActionEvent evt) {
            //on fait choisir l'emplacement souhaiter pour le fichier
            int x = ba_rchhAlumno.WIDTH / 2;
            int y = ba_rchhAlumno.HEIGHT / 2;
            SimpleDateFormat f = new SimpleDateFormat("dd-MM-yyyy");
            Date d = new Date();
            d.getTime();
            String name_file = "ExamenOrina_" + f.format(d) + ".xls";
            this.jFileChooserAlumno.setSelectedFile(new File(name_file));
            this.jFileChooserAlumno.setLocation(x, y);
            val = this.jFileChooserAlumno.showSaveDialog(this);
            // ici jFileChooserAlumno n'est plus afficher à l'ecran 
            boolean b = false;
            System.out.println(val);
     
            // si l'utilisateur a fermer la fenetre par APPROVE_OPTION
            if (val == JFileChooser.APPROVE_OPTION) {
                File file = this.jFileChooserAlumno.getSelectedFile();
                try {
                    b = a_template.u.genererExcelOrina(file);
                } catch (ClassNotFoundException ex) {
                    Logger.getLogger(ba_rchhAlumno.class.getName()).log(Level.SEVERE, null, ex);
                } catch (SQLException ex) {
                    Logger.getLogger(ba_rchhAlumno.class.getName()).log(Level.SEVERE, null, ex);
                }
                System.out.println(b);
                if (b) {
                    this.jLabel1.setText("La lista ha sido registrada a la dirección siguiente : " + file.getPath());
                } else {
                    this.jLabel1.setText("La lista no pudo ser registrada a la dirección siguiente : " + file.getPath());
                }
                new JOptionPane("erreur").showMessageDialog(null, "message d'erreur", "titre", JOptionPane.WARNING_MESSAGE);
            }

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 64
    Par défaut
    super!

    Merci beaucoup!

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

Discussions similaires

  1. probleme avec JfileChooser()
    Par chebmo1986 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/02/2009, 21h51
  2. Probleme avec JFileChooser, file NULL
    Par mugwump dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 08/08/2007, 15h06
  3. Probleme avec JFileChooser
    Par L4BiN dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 04/07/2007, 17h03
  4. probleme d'apparition du JFileChooser coté client
    Par krikete13 dans le forum JSF
    Réponses: 6
    Dernier message: 05/06/2007, 10h39
  5. JFileChooser - Probleme de LookAndFeel
    Par bugmenot dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 23/12/2006, 17h52

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