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

Agents de placement/Fenêtres Java Discussion :

Problème pour changer les cartes d'un CardLayout


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut Problème pour changer les cartes d'un CardLayout
    Bonjour,

    J'ai besoin de votre aide pour le problème suivant :

    J'ai 2 classes, une JForm et un JPanel qui fait office de menu (4 JButon).
    La JForm contient le menu ainsi qu'un JPanel CardLayout.

    Le problème est que je n'arrive pas à partir de ma classe qui me sert de menu à faire changer les cartes dans le JPanel CardLayout, je ne sais pas comment l'atteindre !

    je vous donne 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
     
    import java.awt.*;
    import javax.swing.*;
    import panels.*;
     
    public class CartePlacement extends JFrame {
        private JPanel cartes;
        private JPanel menu;
     
        public CartePlacement() {
            super("Essais CardLayout");
            this.setDefaultCloseOperation(EXIT_ON_CLOSE);
            this.creerInterface();
            this.pack();
            this.setVisible(true);
        }
     
        public void creerInterface() {
            JPanel pan = (JPanel) this.getContentPane();
            menu = new JpMenu();
     
            JPanel carte1 = new JPanel();
            carte1.setLayout(new FlowLayout(FlowLayout.LEFT));
            carte1.add(new JLabel("Formulaire n°1") );
            carte1.add(new JButton("Premier Bouton"));
            carte1.add(new JTextField(20) );
     
            JPanel carte2 = new JPanel();
            carte2.add(new JLabel("Formulaire n°2"));
            carte2.add(new JTextField(20));
            carte2.add(new JButton("Second bouton"));
     
            cartes = new JPanel(new CardLayout());
            cartes.add(carte1, "f1");
            cartes.add(carte2, "f2");
     
            pan.add(menu, BorderLayout.WEST);
            pan.add(cartes, BorderLayout.CENTER);
        }
     
        public static void main(String[] args) {
            CartePlacement test = new CartePlacement();
        }
     
        public void changerCarte(String nomCarte){
            CardLayout carte = (CardLayout) (cartes.getLayout());
            carte.show(cartes, nomCarte);
        }
    }
    j'ai eu l'idée de coder la méthode changerCarte, mais je n'arrive pas à l'appeller depuis le bouton du JPanel menu...

    merci pour votre aide !

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,
    c'est personnel, mais je te conseillerais plutot de définir le menu dans la meme classe que le JPanel global (cartes), qui fait les actionPerformed du menu.
    Tes cartes hériteraient d'une classe et contiendraient chacune leur propre actionPerformed.
    Si tu as peu de cartes, tu peux les définir et traiter les actions dans le JPanel global (cartes).
    En code ca ferait ca :
    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
    public class CartePlacement extends JFrame implements ActionListener {
     
      JPanel cartes, menu;
     
      public CartePlacement() {
      ...
      creerMenu();
      creerInterface();
      ...
      }
     
      public void creerMenu() {
        menu = new ...
        JButton bouton1 = new ...
        bouton1.setActionCommand("MenuBouton1");
        bouton1.addActionListener(this);
        JButton bouton2 = new ...
        bouton2.setActionCommand("MenuBouton2");
        bouton2.addActionListener(this);
        ...
      }
     
      public void creerInterface() {
        ...
      }
     
      public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand().equals("MenuBouton1"))
          changerCarte("le nom de la carte que j'aimerais bien voir s'il vous plait messieurs dames.");
        else if (e.getActionCommand().equals("MenuBouton2"))
        ...
      }
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Salut,

    C'est effectivement la solution que j'ai trouvé sur plusieurs sites et forums, mais j'aurais aimé juste histoire de séparer le code, faire une classe à part...

    si quelqu'un d'autre à une solution ca serait sympa !

    Merci pour ta réponse rapide.

Discussions similaires

  1. [JDOM] Problème pour lire les noeuds avec JDOM
    Par Eclix dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 26/05/2014, 18h11
  2. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  3. Problème pour changer la forme du curseur
    Par Amara dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 18/05/2005, 11h37
  4. Réponses: 1
    Dernier message: 17/05/2004, 11h29

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