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

AWT/Swing Java Discussion :

problème séquence fenêtres Java


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 41
    Points
    41
    Par défaut problème séquence fenêtres Java
    Bonjour,
    j'ai un petit souci de programmation Java: je voudrais faire une séquence de trois fenetres qui s'enchainent, j'arrive à en faire deux mais pas trois...
    Dans ma premeiere fenetre il y a (entre autre) un bouton sur lequel j'appuie, ce qui efface tous les objets de la fenetre et en affiche d'autres, en l'occurence d'autres boutons. Je voudrais, lorrsque j'appuie sur un de ces boutons, faire la même séquence: la fenetre se vide, puis affche d'autres objets; c'est là que je bloque.

    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
    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
     
    import java.io.*; 
    import java.util.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; 
    import javax.swing.event.*; 
     
    public class Fenetre2 implements ActionListener{ 
    //attributs 
    private JFrame fenetre; 
    private JButton boutonA; 
    private JLabel texte0, texte1, texte2; 
    private JTextField champA, champB; 
    private Dimension dimension; 
     
    //constructeur 
    public Fenetre2() { 
    this.fenetre=new JFrame("Bourse Willis"); 
    this.texte0=new JLabel("Bienvenue sur Bourse Willis",SwingConstants.CENTER); 
    this.texte1=new JLabel("Veuillez renter votre numéro client:"); 
    this.texte2=new JLabel("Mot de passe:"); 
    this.champA=new JTextField(20); 
    this.champB=new JTextField(20); 
    this.dimension=new Dimension(100,100); 
    this.boutonA=new JButton("login"); 
    Container conteneur = fenetre.getContentPane(); 
    GridLayout disposition = new GridLayout(10,1); 
    conteneur.setLayout(disposition); 
     
    //on ajoute tout 
    conteneur.add(this.texte0); 
    texte0.setMinimumSize(dimension); 
    conteneur.add(this.texte1); 
    conteneur.add(this.champA); 
    conteneur.add(this.texte2); 
    conteneur.add(this.champB); 
    conteneur.add(this.boutonA); 
    boutonA.addActionListener(this); 
    this.fenetre.setBounds(20,40,300,300); 
    this.fenetre.setVisible(true); 
    } 
    //méthode 
    public void actionPerformed(ActionEvent e){ 
    Container conteneur = fenetre.getContentPane(); 
    //premier changement 
    if (e.getSource()==boutonA) { 
    //on enlève tout 
    conteneur.removeAll(); 
    fenetre.repaint(); 
    //on rajoute tout 
    JButton boutonB=new JButton("acheter"); 
    conteneur.add(boutonB); 
    boutonB.addActionListener(this); 
    conteneur.validate(); 
    fenetre.repaint(); 
    //deuxieme changement 
    if(e.getSource()==boutonB){ 
    System.out.println("ca marche?"); 
    conteneur.removeAll(); 
    fenetre.repaint(); 
    //on rajoute tout 
    JButton boutonG=new JButton("choix entreprise"); 
    conteneur.add(boutonG); 
    conteneur.validate(); 
    fenetre.repaint(); 
    } 
    } 
    } 
    }

    En fait j'ai deux 'if' imbriqués l'un dans l'autre, le premier marche (le boutonB est créé), mais le deuxieme ne marche pas (le boutonB reste à l'écran,'ca marche?' ne s'affiche pas, le boutonG ne s'affiche pas).

    Pouvez-vous m'aider svp?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 41
    Points
    41
    Par défaut
    Mais pourquoi personne ne répond?? Je commence à croire que mon idée est débile, aidez-moi svp!!!!
    Merci!!!!

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Salut,
    Pourquoi tu ne créé pas trois fenètres differente
    en leurs appliquant .setVisible(true) ou .setVisible(false);
    Suivant les fenètres que tu veut afficher.

  4. #4
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Salut

    Regarde du côté du CardLayout

    yann

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 41
    Points
    41
    Par défaut
    Merci CristalWing j'ai fait comme tu as dit et ca marche bien. Je crée plusieurs fenetres dans des classes différentes et je les affiche ou non par le biais d'une autre classe.
    Mais j ai un nouveau probleme: une fenetre que j'ai créé marche mal alors que je n'ai fait que du copier/coller...
    Voici le code de sa classe:
    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
     import java.io.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class FenR{
    //attributs
    private JFrame fenetre;
    private JButton boutonA;
    private JLabel texte0;
    private Dimension dimension;
    //constructeur
    public FenR() {
    this.fenetre=new JFrame("Bourse Willis");
    this.dimension=new Dimension(100,100);
    this.texte0=new JLabel ("Réfléchissez, quand c'est bon appuyez sur retour",SwingConstants.CENTER);
    this.boutonA=new JButton("retour");
    Container conteneur = fenetre.getContentPane(); 
    GridLayout disposition = new GridLayout(10,1);
    conteneur.setLayout(disposition); 
    //on ajoute tout
    conteneur.add(this.texte0);
    conteneur.add(this.boutonA);
    this.fenetre.setBounds(20,40,300,300);   
                }
    //getteurs
    public JButton getBoutonA (){
        return boutonA;
                                }
    //méthode
    public void setVisible(boolean b){
        if (b) { this.fenetre.setVisible(true);
                }
        else { this.fenetre.setVisible(false);
              }
                                     }
    }
    Le code de la classe qui pilote toutes les fenetres est le suivant:
    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
     
    import java.io.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class Fenetres implements ActionListener {
    //attributs
    Fen1 fen1;
    Fen2 fen2;
    Fen31 fen31;
    Fen32 fen32;
    FenR fenR;
    Fen41 fen41;
    //constructeur
    public Fenetres(){
    this.fen1=new Fen1();
    fen1.setVisible(true); 
    fen1.getBoutonA().addActionListener(this);
    this.fen2=new Fen2();
    fen2.getBoutonA().addActionListener(this);
    fen2.getBoutonB().addActionListener(this);
    fen2.getBoutonF().addActionListener(this);
    this.fen31=new Fen31();
    fen31.getBoutonA().addActionListener(this);
    fen31.getBoutonB().addActionListener(this);
    this.fenR=new FenR();
    fenR.getBoutonA().addActionListener(this);
    this.fen32=new Fen32();
    fen32.getBoutonB().addActionListener(this);
    this.fen41=new Fen41();
    fen41.getBoutonA().addActionListener(this);
                     }
    //méthode
    public void actionPerformed(ActionEvent e){
        if (e.getSource()==fen1.getBoutonA()) {
            //on cache la première fenêtre
            fen1.setVisible(false); 
            //on montre la deuxième
            fen2.setVisible(true); 
                                        }
    //actions possibles sur la deuxième fenêtre
        if (e.getSource()==fen2.getBoutonA()) {    
            //on cache la deuxième fenêtre
            fen2.setVisible(false); 
            //on montre la troisième
            /*fen31=new Fen31();*/
            fen31.setVisible(true); 
                                              }
        if (e.getSource()==fen2.getBoutonB()) {    
            //on cache la deuxième fenêtre
            fen2.setVisible(false); 
            //on montre la troisième
            /*fen32=new Fen32();*/
            fen32.setVisible(true); 
                                              }
        if (e.getSource()==fen2.getBoutonF()) {    
            //on cache la deuxième fenêtre
            fen2.setVisible(false); 
            //on montre la troisième
            fenR=new FenR();
            fenR.setVisible(true); 
                                              }
    //actions possibles sur la fenêtre R                                          
        if (e.getSource()==fenR.getBoutonA()) {    
            //on cache la fenêtre R
            fenR.setVisible(false); 
            //on montre la deuxième
            fen2.setVisible(true);    
                                              }        
    //actions possibles sur la fenêtre 31
        if (e.getSource()==fen31.getBoutonA()) {    
            //on cache la fenêtre 31
            fen31.setVisible(false); 
            //on montre la fenêtre 41
            fen41.setVisible(true); 
                                              }                                          
        if (e.getSource()==fen31.getBoutonB()) {    
            //on cache la fenêtre 31
            fen31.setVisible(false); 
            //on montre la deuxième
            /*fen32=new Fen32();*/
            fen2.setVisible(true); 
                                              }
    //actions possibles sur la fenêtre 32                                          
        if (e.getSource()==fen32.getBoutonB()) {    
            //on cache la fenêtre 32
            fen32.setVisible(false); 
            //on montre la deuxième
            /*fen32=new Fen32();*/
            fen2.setVisible(true); 
                                              }    
    //actions possibles sur la fenêtre 41                                          
        if (e.getSource()==fen41.getBoutonA()) {    
            //on cache la fenêtre 41
            fen41.setVisible(false); 
            //on montre la deuxième
            fen2.setVisible(true); 
                                              }                                          
                                        }
    }
    En fait tout marche parfaitement, sauf le bouton 'retour' de la fenetre fenR, je ne comprends pas pourquoi car j'ai vraiment fait du copier/coller à partir des autres classes...
    Quelqu'un peut-il m'aider?? Merci

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 41
    Points
    41
    Par défaut
    Oups désolé j'ai parlé un peu vite, il fallait juste enlever la ligne 'fenR=new FenR();' dans la méthode actionPerformed.
    Mes problemes sont résolus merci de votre aide!

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

Discussions similaires

  1. problème avec les .java compilés
    Par root76 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 05/05/2006, 19h14
  2. Problème compatibilité encodage Java et js avec IE
    Par sev22 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/04/2006, 09h57
  3. [debutant][Applet] problèmes insertion applet java
    Par mlequim dans le forum Applets
    Réponses: 5
    Dernier message: 11/07/2005, 09h50
  4. [SQLPLUS] - Problème de Triggers Java
    Par farcis dans le forum Oracle
    Réponses: 7
    Dernier message: 23/12/2004, 09h21

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