Switcher entre des panels

cs_machistador Messages postés 25 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 12 septembre 2004 - 2 juin 2004 à 13:06
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007 - 4 juin 2004 à 13:10
Bonjour,

j'aimerais savoir s'il est possible de switcher un affichage entre trois panels en appuyant sur des boutons.
Plus clairement, je voudrais savoir si je peux changer mon panel de droite en fonction du choix de l'utilisateur.

Ce que j'arrie à faire pour l'instant c'est cacher le pemier panel ( celui crée dans le constructeur) et le reafficher mais les autres ne s'affichent pas.

Il faut savoir que ces trois panels ne sont pas de la même classe, je les cast. En gros j'ai ca :

Variables membres de la classe
JPanel rightSide; // Contiendra l'1 des 3 panels ci dessous
/* Mes 3 panels */
JTutorialPanel tutorialPanel=null;
JDecisionsPanel decisionsPanel=null;
JResultsPanel resultsPanel=null;

Dans le constructeur de ma classe, j'en initialise 1 :
tutorialPanel = new JTutorialPanel(ref);
rightSide= (JPanel) tutorialPanel;
... add(righSide...

Dans mon action listener
SI je clique sur le bouton 1
rightSide.hide();
rightSide.setVisible(false);
if (tutorialPanel == null)
{
/* we must create it */
tutorialPanel = new JTutorialPanel(mnWnd);
rightSide= (JPanel) tutorialPanel;
}
else
{
rightSide = tutorialPanel;
}
repaint();
rightSide.show();
rightSide.setVisible(true);

Si je ckique sur le bouton 2, je fais la meme chose en remplacant tutorialPanel par decisionsPanel... Etc etc

Je voulais savoir pourquoi ca se reaffiche pas et si le cast de mon type specifique vers JPanel peut etre la cause (vu que juste ce qui etait affiché par le constructeur se reaffiche)...

Merci d'avance, j'espere avoir été assez claire,
Piero

3 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
2 juin 2004 à 13:56
Il faut que tu fasses un revalidate() de ton jpanel que tu reaffiche plutot qu'un repaint(),et la ca marchera...
-------------------
>:) dams >:)
-------------------
cs_machistador Messages postés 25 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 12 septembre 2004
4 juin 2004 à 11:55
Merci beaucoup,
Alors en fait je dois faire un repaint() puis un revalidate() pour que l'affichage marche reellement (si on redimensionne la fenetre entre temps par exemple).

Donc c niquel merci beaucoup!
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
4 juin 2004 à 13:10
comme dit souvent mon collegue, qui a plus d'experience que moi en java,
"y a rien qui resiste au revalidate()!"
-------------------
>:) dams >:)
-------------------
Rejoignez-nous