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 :

[CardLayout]Activation d'un autre Panel


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Par défaut [CardLayout]Activation d'un autre Panel
    Salut,

    J'ai un panel constitué à gauche d'un arbre et à droite d'un Panel de style CardLayout. J'ajoute des panels dans ce CardLayout et quand je clique sur un noued, je demande l'affichage du panel correspondant. Enfin, ça c'est ce que je veux faire mais en fait le panel affiché ne change pas

    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
       private void GuiBuild()
        {
            setLayout(new BorderLayout());
     
            // construction de l'arbre permettant d'accéder aux différents types d'options
            _tree.setRootVisible(false);
     
            final DefaultMutableTreeNode General  = new DefaultMutableTreeNode("General"),
            			     CRM      = new DefaultMutableTreeNode("CRM");
            _treeModel.insertNodeInto(General, _treeRootNode, _treeRootNode.getChildCount());
    	_treeModel.insertNodeInto(CRM, 	   _treeRootNode, _treeRootNode.getChildCount());
    	_treeModel.nodeStructureChanged(_treeRootNode);
     
            JScrollPane treeScrollPane = new JScrollPane();
            treeScrollPane.setViewportView(_tree);
     
            // Listener de souris
            MouseListener ml = new MouseAdapter() 
            {
                public void mouseClicked(MouseEvent e)
                {
                	DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)_tree.getLastSelectedPathComponent();
                	activePanel(selectedNode.toString());
                }
            };
            _tree.addMouseListener(ml);
            add(treeScrollPane, BorderLayout.WEST);
     
            // Panel contenant les sous-panels
            JPanel panel = new JPanel();
            _layout = new CardLayout();
    	panel.setLayout(_layout);
            add(panel, BorderLayout.CENTER);
     
            // Construction des panels relatifs à chaque domaine
            _panelsettingsGeneral 	= new uDlgSettingsGeneral();
            JScrollPane scrollPaneGeneral = new JScrollPane(_panelsettingsGeneral);
            scrollPaneGeneral.setBorder(BorderFactory.createEmptyBorder());
            panel.add("General", scrollPaneGeneral);
    	_layout.addLayoutComponent(scrollPaneGeneral, "General");			
     
            _panelsettingsCRM 	= new uDlgSettingsCRM();
            JScrollPane scrollPaneCRM = new JScrollPane(_panelsettingsCRM);
            scrollPaneCRM.setBorder(BorderFactory.createEmptyBorder());
            panel.add("CRM", scrollPaneCRM);
    	_layout.addLayoutComponent(scrollPaneCRM, "CRM");		
        }
     
        private void activePanel(String panelName)
        {
    	_layout.show(this, panelName);
        }
    Lors d'un click sur un noeud, la méthode activePanel est bien appelée avec le bon nom mais le panel ne change pas

    Merci pour votre aide

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Bonjour, essaie comme ceci :
    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
       private void GuiBuild()
        {
            setLayout(new BorderLayout());
     
           ...
     
            // Panel contenant les sous-panels
           final JPanel panel = new JPanel();
     
           MouseListener ml = new MouseAdapter() 
            {
                public void mouseClicked(MouseEvent e)
                {
                	DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)_tree.getLastSelectedPathComponent();
                	activePanel(panel, selectedNode.toString());
                }
            };
            ...	
        }
     
        private void activePanel(Container panel, String panelName)
        {
    	_layout.show(panel, panelName);
        }

  3. #3
    Membre confirmé

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Par défaut
    C'est si simple quand on sait

    Merci beaucoup !

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

Discussions similaires

  1. Remplacer un panel par un autre panel
    Par Ggamer dans le forum wxPython
    Réponses: 2
    Dernier message: 04/04/2008, 13h52
  2. Evenement sur un panel depuis un autre panel
    Par ensisoft dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 11/01/2008, 17h26
  3. Macro de transfert de données d'une feuille active vers 1 autre
    Par M8407108 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/12/2007, 16h27
  4. Active X et autres
    Par Ludo_360 dans le forum Delphi
    Réponses: 1
    Dernier message: 16/05/2007, 17h57
  5. [VBA-E] copier une fiche active dans un autre classeur.
    Par Little-Freud dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 15/03/2006, 10h51

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