supers03
Messages postés106Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 1 décembre 2008
-
15 août 2005 à 12:41
supers03
Messages postés106Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 1 décembre 2008
-
17 août 2005 à 11:15
Bonjours à tous
J'avais envi de faire une petite application qui necessite l'affichage de trois écrans (trois JPanel que j'appelerai page1, page2, etc ...), l'un apres l'autre, avec un system de precedent/suivant ...
J'ai donc ma frame, avec un panel "Contenu" en haut et un "Navigation" en bas ...
Le problème vient du fait que la "page2" necessite d'être construite en fonction des paramètre que l'utilisateur rentre dans la page1
et quand je fait :
JPanel page2 = new Page2(...);
contenu.remove(page1);
contenu.add(page2);
ça marche, mais je peu plus rien faire avec mon contenu.page2 ... je peu pas l'enlever, le rendre invisible etc ...
du coup j'ai essayer de mettre directement les trois panels, puis de les rendre visible un par un.
Mais toujours à cause du Page 2, je doit faire un :
contenu.page2 = new Page2(...);
contenu.page2.setVisible(true);
mais ça l'affiche pas...
quelqu'un a des explications et solutions à mon problème
Merci d'avance
A voir également:
Modifier un JPanel(ou Frame) pendant l'exécution d'un programme
mouzart
Messages postés161Date d'inscriptionmardi 26 avril 2005StatutMembreDernière intervention 6 novembre 20084 17 août 2005 à 10:36
salut je vais essayer de te donner un petit code pour savoir comment on fait les chose:
JPanel Pan=new JPanel();
JPanel Pan0=new JPanel();
JPanel Pan1=new JPanel();
JPanel Pan2=new JPanel();
CardLayout C=new CardLayout();
dans ton constructeur on ajoute les Pani a Pan:
Pan.setLayout(C);
Pan.add(Pani);
maintenant apres que toutes les fenetres sont ajoutes,Ah Dans Pan au debut on visualise le dernier Pani ajoute;
et maintenant pour voir un Pani bien specifie ex Pan1:
tu na qu'a faire
C.show(Pan;"Pan2");
le 2 param est le nom du JPanel
voila comment ca marche et le CardLayout est le moyen facile mais efficace pour ce genre de boulot,
Allez bon courage je suis a ta disposition si ca marche pas peut etre qu'il ya une anomalie
Abdelilah (Mouzart)
supers03
Messages postés106Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 1 décembre 2008 17 août 2005 à 11:15
Je suis tout à fait d'accord avec toi, mais comme je le dit dans mon message précédent ça ne résoud pas mon problème.En effet, si jamais pendant l'execution de ton programme tu fait un
Pan1=new JPanel();
(en reprenant ton exemple), pour reconstruire ton panel, et ben c'est toujours l'ancien panel qui est affiché, et pas le nouveau que tu viens de reconstruire.
Donc j'ai essayé de refaire un
Pan.add(Pani, "Pani")
et là ça marche enfin .... Et j'ai quand meme mis un remove avant le add, c'est peut etre plus propre ...
... Donc moralité le add() "à chaud" ne marche qu'avec un CardLayout ... lol c'est pas vraiment cool ça !!!
viking85
Messages postés59Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention28 mars 200714 16 août 2005 à 12:01
concernant le validate() :
je pense qu'en fait, il revérifie les component du container. cependant, je ne suis pas super fort en anglais, et j'ai pas bien compris leur charabia.
concernant ton probleme :
kan tu met les 3 panel dans contenu, est ce que tu peux affiche la panel 1 ou le panel 3 ?
supers03
Messages postés106Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 1 décembre 2008 16 août 2005 à 17:37
Bon alors c'est vrai que le CardLayout simplifi enormement ce que je
voulais faire ... (mais bon c'est pas la simplicité qui m'interesse, si
tout est simple il n'y a plus d'interet )
M'enfin en attendant ça ne résoud pas mon probleme ... en effet si je fait un
contenu.page2 = new Page2(...)
contenu.card.next(contenu);
ben ça ne m'affiche pas la nouvelle page2, mais toujours l'ancienne ...
donc ben si mouzart t'es un specialiste du CardLayout je veus bient'écouter