Changer dynamiquement un JPanel par un autre

Angenoir Messages postés 3 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 8 avril 2004 - 3 août 2003 à 02:06
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 12 févr. 2015 à 08:28
Salut.

J'aimerais concevoir une application graphique sympa mais je me heurte à quelques problèmes, mes connaissances en Java étant assez limitées :sad)

Voilà, j'ai une interface basique : une frame, contenant un panel qui a son tour contient un menu, une barre d'outils, un panel au centre et une barre d'état (Application basique de JBuilder quand on crée un nouveau projet).
Je souhaiterais que lorsqu'on clique sur un des boutons de la barre d'outils, le panel du centre change et qu'il affiche un autre panel que j'aurais crée séparément (dans une classe panel2 par exemple).

Plus concrêtement, j'aimerais développer une interface comme celle du Swing Set Demo 2 mais sous JBuilder 8 (entreprise).

Je ne sais pas si c'est compliqué mais ça fait bien deux jours que je me prends la tête dessus ! :sad)

Si vous avez un début de réponse (ou même une réponse complète :) ) merci beaucoup beaucoup beaucoup ...

4 réponses

tominfo Messages postés 93 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 30 janvier 2009
3 août 2003 à 20:59
-------------------------------
Réponse au message :
-------------------------------

salut!

Si par exemple dans ta JFrame (maFenetre par exemple) tu as 1 (ou plusieurs) JPanel.
Par exemple l'un d'entre eux s'appelle panelGauche.
Si tu veux le retirer de la JFrame tu fait un
maFenetre.remove(panelGauche).
Ensuite tu fait :
panelGauche = new monPanel2().
maFenetre.getContentPane().add(panelGauche);
maFenetre.repaint();
maFenetre.pack();
maFenetre.show();

(note : monPanel2 doit bien sûr hériter de JPanel.)

Et ça devrait marcher. Y'a surement 1 ou 2 ligne qui ne sont pas nécessaires mais je te laisse tester.

> Salut.
>
> J'aimerais concevoir une application graphique sympa mais je me heurte à quelques problèmes, mes connaissances en Java étant assez limitées :sad)
>
> Voilà, j'ai une interface basique : une frame, contenant un panel qui a son tour contient un menu, une barre d'outils, un panel au centre et une barre d'état (Application basique de JBuilder quand on crée un nouveau projet).
> Je souhaiterais que lorsqu'on clique sur un des boutons de la barre d'outils, le panel du centre change et qu'il affiche un autre panel que j'aurais crée séparément (dans une classe panel2 par exemple).
>
> Plus concrêtement, j'aimerais développer une interface comme celle du Swing Set Demo 2 mais sous JBuilder 8 (entreprise).
>
> Je ne sais pas si c'est compliqué mais ça fait bien deux jours que je me prends la tête dessus ! :sad)
>
> Si vous avez un début de réponse (ou même une réponse complète :) ) merci beaucoup beaucoup beaucoup ...
0
Angenoir Messages postés 3 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 8 avril 2004
4 août 2003 à 12:01
Oui merci, j'avais trouvé quelque chose d'un peu similaire en bidouillant, mais je vais tester avec ta méthode pour comparer les perfs.

Merci beaucoup, c'est sympa.

A++

> -------------------------------
> Réponse au message :
> -------------------------------
>
> salut!
>
> Si par exemple dans ta JFrame (maFenetre par exemple) tu as 1 (ou plusieurs) JPanel.
> Par exemple l'un d'entre eux s'appelle panelGauche.
> Si tu veux le retirer de la JFrame tu fait un
> maFenetre.remove(panelGauche).
> Ensuite tu fait :
> panelGauche = new monPanel2().
> maFenetre.getContentPane().add(panelGauche);
> maFenetre.repaint();
> maFenetre.pack();
> maFenetre.show();
>
> (note : monPanel2 doit bien sûr hériter de JPanel.)
>
> Et ça devrait marcher. Y'a surement 1 ou 2 ligne qui ne sont pas nécessaires mais je te laisse tester.
>
> > Salut.
> >
> > J'aimerais concevoir une application graphique sympa mais je me heurte à quelques problèmes, mes connaissances en Java étant assez limitées :sad)
> >
> > Voilà, j'ai une interface basique : une frame, contenant un panel qui a son tour contient un menu, une barre d'outils, un panel au centre et une barre d'état (Application basique de JBuilder quand on crée un nouveau projet).
> > Je souhaiterais que lorsqu'on clique sur un des boutons de la barre d'outils, le panel du centre change et qu'il affiche un autre panel que j'aurais crée séparément (dans une classe panel2 par exemple).
> >
> > Plus concrêtement, j'aimerais développer une interface comme celle du Swing Set Demo 2 mais sous JBuilder 8 (entreprise).
> >
> > Je ne sais pas si c'est compliqué mais ça fait bien deux jours que je me prends la tête dessus ! :sad)
> >
> > Si vous avez un début de réponse (ou même une réponse complète :) ) merci beaucoup beaucoup beaucoup ...
>
0
junicode Messages postés 3 Date d'inscription mercredi 4 février 2015 Statut Membre Dernière intervention 20 février 2015
11 févr. 2015 à 14:52
Merci beaucoup Tomifo !!!
C'est trop génial, ta réponse vient de m'aider 12ans après. c'est fou hein,,..
A+++
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
12 févr. 2015 à 08:28
Salut,

Heuuu.... le CardLayout est fait pour ça et tu n'as pas besoin de supprimer/rajouter/revalider ton panel...

Au passage merci d'éviter les necrobump laissons les vieux sujets reposer en paix (RIP)
0
Rejoignez-nous