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

Interfaces Graphiques en Java Discussion :

Ouverture d'une fenêtre d'exploration


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut Ouverture d'une fenêtre d'exploration
    Salut à tous,
    Je réalise un test qui consiste à ouvrir un fichier à partir d'une fenêtre initiale comportant un JButton ("Brows") et un JTextField (non utilisé pour l'instant). Mon problème est que lorsque je run mon programme, les deux fenêtres (créee + explorateur) s'affichent, alors que je voudrais que l'explorateur s'affiche après clic sur "Brows".

    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
     
    public class Test2JPanel extends javax.swing.JPanel {        
     
        public Test2JPanel() {
            initComponents();
        }
     
        public static MouseEvent MOUSE_RELEASED;
     
        public static void main(String[] arg){
     
            Test2JPanel test = new Test2JPanel();
     
            JButton jButton1 = new JButton();
            jButton1.setText("Brows");
     
            JPanel fenetreTest = new JPanel();
            JTextField jTextField1 = new JTextField(10);           
            fenetreTest.add(jTextField1);
            fenetreTest.add(jButton1);
     
            JFrame cadre = new JFrame("Test d'ouverture");
            cadre.setContentPane(fenetreTest);
            cadre.setSize(400, 100);
            cadre.setVisible(true);
     
            test.JButton1MouseReleased(MOUSE_RELEASED);
     
        }
     
    private void JButton1MouseReleased(java.awt.event.MouseEvent evt) {                                       
            JFileChooser file = new JFileChooser();
            file.setFileSelectionMode(JFileChooser.FILES_ONLY);
            file.setApproveButtonText("Open");
            if(file.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
                this.jTextField1.setText(file.getSelectedFile().getAbsolutePath());    
            }
        }
    Je pense qu'il faut que je place une condition avant d'exécuter ma méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            test.JButton1MouseReleased(MOUSE_RELEASED);
    ...mais laquelle?


    Merci infiniment pour votre aide.

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Une des bases de SWING est d'utiliser des listeners, si tu as un soucis jette un oeil à cette documentation.

    Ta classe Test2JPanel doit implémenter ActionListener.
    Tu ajoutes jButton1.addActionListener(this) dans ton main.
    Ensuite tu supprimes la méthode JButton1MouseReleased et tu mets sont contenu dans actionPerformed.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Je viens d'appliquer tes conseils, cependant le compilateur (NetBeans) me signal une erreur lorsque je met "jButton1.addActionListener(this)" dans le main, en me disant "non-static variable this cannot be referenced from a static context". Quelles sont les modifs à apporter s'il te plait?

    Merci pour tes réponses.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    Bonjour,

    à la place de ton this, mets plutot ton instance de Test2JPanel.

    Cdlt

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Bonjour piou1234,
    J'ai suivi ce que tu m'as conseillé et l'erreur a disparu mais une autre est apparue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void actionPerformed(ActionEvent evt){
            throw new UnsupportedOperationException("Not supported yet.");
            JFileChooser file = new JFileChooser();      //ERREUR : "unreachable statement"
            file.setFileSelectionMode(JFileChooser.FILES_ONLY);
            file.setApproveButtonText("Open");
            if(file.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
                this.jTextField1.setText(file.getSelectedFile().getAbsolutePath());    
            }
        }
    Que me conseilles-tu de changer?

    Merci de ta collaboration.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    Re,


    La ligne "throw new UnsupportedOperationException("Not supported yet.");" ne devrait pas etre là!!! tu la sors d'où? C'est toi qui l'a rajouté?

    A chaque passage dans l'action performed, tu vas avoir une exception de lancer.
    Et c'est pour ca que sur la ligne en dessous, tu as un "unreachable statement", ce qui signifie que cette ligne ne sera jamais lu car dans tous les cas l'exception aura était lancer avant.
    Donc vire ton exception , elle ne sert à rien.

    Cdlt

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

Discussions similaires

  1. Détecter l'ouverture d'une fenêtre
    Par Matt2094 dans le forum Delphi
    Réponses: 9
    Dernier message: 30/08/2006, 12h48
  2. Réponses: 12
    Dernier message: 06/06/2006, 12h13
  3. Erreur sur l'ouverture d'une fenêtre popup
    Par misa dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/11/2005, 15h21
  4. Ouverture d'une fenêtre ms-dos malgré l'utilisation de .pyw
    Par Ank dans le forum Général Python
    Réponses: 2
    Dernier message: 21/10/2005, 14h33
  5. [HTTPS] ouverture d'une fenêtre
    Par Boosters dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/01/2005, 14h08

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