Accéder d'un JPanel à un JPanel d'une autre JFrame

Fermé
Myriam-dbls Messages postés 4 Date d'inscription lundi 11 mai 2015 Statut Membre Dernière intervention 24 juin 2015 - 11 mai 2015 à 17:40
Myriam-dbls Messages postés 4 Date d'inscription lundi 11 mai 2015 Statut Membre Dernière intervention 24 juin 2015 - 17 mai 2015 à 19:21
Bonjour,
Alors je travaille sous netbeans, j'y suis débutente et je rencontre un problème de JPanels. Je vous explique : mon package contient une JFrame (nommée Fenetre1) dans laquelle j'ai mis un JPanel vide (nommé jPanel3). Mon package contient un sous-package (nommé MyPanels) où j'ai créé deux nouveaux JPanels (nommés Formulaire et Resultats -bien séparés-). La première fois je n'ai pas de problème car je n'ai qu'à instancier Formulaire et l'ajouter dans jPanel3 de Fenetre1 comme ceci :

dans le code de Fenetre1 :
Formulaire form = new Formulaire();
jPanel3.add(form);
form.setBounds(0, 0, 775, 638);

Mon problème est que le JPanel Formulaire contient un bouton qui devra avoir comme action l'affichage du JPanel Resultat dans jPanel3 de Fenetre1 à la place du Formulaire form. Donc je dois faire la même chose sauf que je n'ai pas accès au jPanel3 de Fenetre1 dans Formulaire. J'ai pensé donc à faire un getteur de jPanel3 dans Fenetre1 comme ceci :

dans le code de Fenetre1 :
public JPanel getJPanel3(){
return jPanel3;
}

puis pour afficher Resultat à la place de Fomulaire je fais comme ça :

dans le code de Formulaire :
this.setVisible(false);
Resultat res = new Resultat ();
Fenetre1 f1 = new Fenetre1();
f1.getJPanel3().add(res);
res.setBounds(0, 0, 775, 638);

Mais cela ne m'affiche rien. Quelqu'un a une idée de comment cela peut-il fonctionner ?
A voir également:

1 réponse

yamdjio Messages postés 88 Date d'inscription lundi 18 août 2014 Statut Membre Dernière intervention 21 mai 2015 5
13 mai 2015 à 23:38
Bonjour,
je pense ton problème vient des New que tu fais car New instancie (recrée) une classe tels que définit avec le constructeur par défaut (généralement les zone de texte sont vides, etc).
donc a chaque fois que tu fais un New, les classes sont comme réinitialisées.
pour ton cas tu devrais accéder a la classe directement en faisant:
Nom_package.Nom_classe si les classes sont dans les packages différents, ou directement Nom_classe si elles sont dans le même package.
utilise les methodes removeall() pour vider ton contentpane() (this.contentpane().setvisible(false); this.contentpane().removeall();this.contentpane().add(resultat);this.contentpane().setvisible(true)>
0
Myriam-dbls Messages postés 4 Date d'inscription lundi 11 mai 2015 Statut Membre Dernière intervention 24 juin 2015
17 mai 2015 à 19:21
Bonjour, tout d'abord je vous remercie de m'avoir aidé, j'apprécie vraiment et puis je vais essayer de suivre vos conseils :)
0