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 :

Interchangement de Jpanel


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 179
    Points : 100
    Points
    100
    Par défaut Interchangement de Jpanel
    Bonjour,

    J ' ai un problème pour changer de 2 jPanel dans une JFrame, je m ' explique:

    A l ' ouverture de mon application : le panel principal est affiché (JPanelContainer). Ensuite , je peut changer de Jpanel(JPanelEdition) via un JMenuItem(Edition Xml) et revenir sur mon ancien panel avec un autre JMenuItem(Lecture Xml).

    Ca fonctionne bien si je passe du JpanelContainer au JpanelEdition , mais lorsque je tente de revenir sur le JPanelContainer( avec l ' instance courante que je passe dans le constructeur de ma classe) ca ne fonctionne pas( ca vide la JFrame).

    Bien sur , ca fonctionne si je crée un nouveau JPanelContainer , mais je voudrais récupérer l ' instance courante qui dispose de traitements en cours.

    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
    public class MenuMode implements ActionListener{
    	private JMenuItem menuLecture,menuEdition;
    	 private JFrameContainer fenetre;
    	 private JPanelContainer containerLecture;
    	 private JPanelEdition containerEdition;
     
    	 public MenuMode(JFrameContainer fenetre , JPanelContainer containerLecture)
    	 {
    		 super();
    		 this.fenetre=fenetre;
    		 this.containerLecture=containerLecture;// instance courante
     
    	 }
    	public JMenu initialiserMenuMode()
    	{
    	JMenu menu;
            menu = new JMenu("Mode");
            menuLecture = new JCheckBoxMenuItem("Lecture Xml");
            menuLecture.setSelected(true);
            menuEdition = new JCheckBoxMenuItem("Edition Xml");
            menuLecture.addActionListener(this);
            menuEdition.addActionListener(this);
     
            menu.add(menuLecture);
            menu.add(menuEdition);
    		return menu;
     
    	}
     
     
    	public void actionPerformed(ActionEvent e) {
    		JCheckBoxMenuItem source = (JCheckBoxMenuItem)(e.getSource());
     
    		 if(source.getText().equals("Lecture Xml"))
    	        {
    			 if(source.isSelected())
    			 {
     
    			   menuLecture.setEnabled(false);
    			   menuEdition.setSelected(false);
    			   menuEdition.setEnabled(true);
    			   fenetre.getContentPane().removeAll();
    			   fenetre.getContentPane().repaint();
    			   fenetre.setContentPane(containerLecture);// le problème se situe ici : il ne m ' ajoute pas l ' instance courant de containerLecture
    			   containerLecture.revalidate();
    			   containerLecture.updateUI();
    			   containerLecture.repaint();
    			 }
     
    	        }
    		 if(source.getText().equals("Edition Xml"))
    	        {
    			 if(source.isSelected())
    			 {
    			   MenuParametres.menu.setEnabled(false);
     
    			   menuEdition.setEnabled(false);
    			   menuLecture.setEnabled(true);
    			   menuLecture.setSelected(false);
    			   containerEdition=new JPanelEdition();
     
    			   fenetre.getContentPane().removeAll();
    			   fenetre.getContentPane().repaint();
    			   fenetre.setContentPane(containerEdition);
    			   containerEdition.revalidate();
    			 }
    	        }
     
    	}
    }

    Merci votre aide

  2. #2
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    cardLayout ? jLayeredPane ? jTabbedPane ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 179
    Points : 100
    Points
    100
    Par défaut
    Merci de ta réponse.
    Mais c ' est obligatoire de passer par un jLayeredPane( car sinon je devrais faire une refonte de mon interface graphique...)?

    Avec une Jframe ordinaire , ca doit etre possible puisque ca fonctionne si je crée une autre instance de JPanelContainer , c ' est récupérer l ' instance courant qui ne fonctionne pas.

    Merci de ton aide

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Un CardLayout n'aurait-il pas fait l'affaire?
    C'est prévu pour ce genre de choses normalement...
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 179
    Points : 100
    Points
    100
    Par défaut
    Ca fonctionne avec un cardLayout.

    Merci

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

Discussions similaires

  1. Interchanger un JPanel avec un autre
    Par jfz dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 09/01/2010, 20h38
  2. marges de JPanel
    Par cmoulin dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 10/05/2004, 15h21
  3. Pb scintillement-stabilité lors réaffichage de JPanel
    Par Pill_S dans le forum Composants
    Réponses: 5
    Dernier message: 28/04/2004, 14h03
  4. Listener sur un JPanel
    Par ptitelfe dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 27/03/2004, 13h14
  5. JPanel et Border
    Par titoine dans le forum Débuter
    Réponses: 3
    Dernier message: 22/04/2003, 15h58

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