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

avec Java Discussion :

[QST] JFileChooser, quel bouton a été enfoncé ?


Sujet :

avec Java

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Points : 227
    Points
    227
    Par défaut [QST] JFileChooser, quel bouton a été enfoncé ?
    Bonjour a tous,

    sa fait deus heure que je cherche comment faire pour savoir si c'est le bouton ouvrir, ou le bouton annulé d'un JFileChooser qui a été actionner...

    voici une parti de 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
    14
    15
    16
    17
     
    fichier1 = new JFileChooser(".");
    fichier1.setApproveButtonText("Choix du fichier...");
    fichier1.addActionListener(new EcouteurChoixFichier());
    fichier1.addChoosableFileFilter(new FiltreFichier());
    fichier1.setAcceptAllFileFilterUsed(false);
     
    retour1 = fichier1.showOpenDialog(fenetrePrincipal.this);
    ......
     
    public class EcouteurChoixFichier implements ActionListener {
     
    		public void actionPerformed(ActionEvent e) {
                   PathFichier1.setText(fichier1.getSelectedFile().getAbsolutePath());
     
                    }
    }
    le probleme est que si j'appuis sur annuler, je viens aussi faire le setText, donc, j'ai une belle erreur NullPointerException.....

    Donc si quelqu'un peut me dire comment savoir d'ou viens l'action (bouton ouvrir ou bouton annulé) sa me serai vraiment trés utile

    Je vous remercie d'avance pour votre aide

    EDIT: d'aprés ce que j'ai vue sur la doc
    http://java.sun.com/docs/books/tutor...lechooser.html

    ce code devrai ne laissé passer que l'appui sur ouvrir, mais cela ne fonctionne pas ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class EcouteurChoixFichier implements ActionListener {
     
    		public void actionPerformed(ActionEvent e) {
                       if (retour1 == JFileChooser.APPROVE_OPTION) 
                    PathFichier1.setText(fichier1.getSelectedFile().getAbsolutePath());
     
     
                    }
    }

  2. #2
    Membre actif Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Points : 278
    Points
    278
    Par défaut
    Bonjour,
    tu peux faire une condition tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JFileChooser chooser = new JFileChooser();
    // ton code ...
    if(this.chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) // l'utilisateur à fait ouvrir ou ok ou sauvegarder...
    // ou...
    if(this.chooser.showOpenDialog(this) == JFileChooser.CANCEL_OPTION) //
    l'utilisateur à annulé...
    J'espère que c'est ce que tu cherchais...

  3. #3
    Membre actif Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Points : 278
    Points
    278
    Par défaut
    Bonjour,
    tu peux faire une condition tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JFileChooser chooser = new JFileChooser();
    // ton code ...
    if(this.chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) // l'utilisateur à fait ouvrir ou ok ou sauvegarder...
    // ou...
    if(this.chooser.showOpenDialog(this) == JFileChooser.CANCEL_OPTION) //
    l'utilisateur à annulé...
    J'espère que c'est ce que tu cherchais...

  4. #4
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    j'ai le meme probleme pourtant,
    j'utilise JFileChooser.APPROVE_OPTION

    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);
        }
    }

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Points : 227
    Points
    227
    Par défaut
    voici comment j'ai fait :

    (code placer dans l'actionListener d'un JButton (choix du fichier)
    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
     
    //creation du JFileChooser
    fichier1 = new JFileChooser(".");
     
    //changement du nom du bouton ouvrir
    fichier1.setApproveButtonText("Choix du fichier...");
     
    //ajout d'un filtre de fichier
    fichier1.addChoosableFileFilter(new FiltreFichier());
    fichier1.setAcceptAllFileFilterUsed(false);
     
    //ouverture de la boite de dialogue
    retour1 = fichier1.showOpenDialog(fenetrePrincipal.this);
     
    //test si cliqué sur ouvrir
    if (retour1 == JFileChooser.APPROVE_OPTION) {
    	//Fait ces instructions si on a choisi un fichier.
    	file=fichier1.getSelectedFile();
    }

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/02/2009, 17h25
  2. [ActionEvent][JMenuItem]Connaitre quel bouton a été cliqué
    Par leminipouce dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 16/02/2006, 10h37
  3. [C#] Savoir quel bouton a déclenché l'évènement
    Par Amerok dans le forum ASP.NET
    Réponses: 4
    Dernier message: 01/12/2005, 15h19
  4. Formulaire -> pour savoir sur quel bouton on a cliqué.
    Par Thierry8 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/09/2005, 18h53
  5. [Conception] Tester quel bouton a effectué l'action
    Par Cyborg289 dans le forum Général Java
    Réponses: 6
    Dernier message: 07/07/2005, 23h50

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