Appel de variables public

Résolu
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 2 déc. 2005 à 12:13
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 2 déc. 2005 à 17:02
bonjour,

j'ai 1 prg qui ouvre 2 fenetres : d'abord fen1, puis fen2. je n'arrive pas a faire en sorte que le panel de fen2 soit de la taille de celui de fen1 (quelle que soit sa taille).
j'ai pourtant declare pane1 comme "public".
comment faut t'il que je m'y prenne ?

voici mon prg :
public class fen2 extends JFrame {
private JPanel pane2 = new JPanel();
public fen2() {
pane2.setSize(fen1.pane1.width, fen1.pane1.height)
//dans fen1, pane1 est declare : JPanel pane1 = new JPanel();
.....
}
}
merci a vous,

alonsyl

7 réponses

super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
2 déc. 2005 à 16:48
public class fen2 extends JFrame {
private JPanel pane2 = new JPanel();
//ta fenetre 1
private Fen1 fen1;
public fen2(Fen1 fen1) {
this.fen1 = fen1;
pane2.setSize(fen1.pane1.width, fen1.pane1.height)
//dans fen1, pane1 est declare : JPanel pane1 = new JPanel();
.....
}
}

mais je comprend pas par contre comment ton code peut compiler puisqu avant t avait pas de fen1 dans ta classe fen2 a moins que tes varibale de fen1 étaient statiques ?
déjà pr info met le nom de ta classe en majuscule c est plus clair
genre
public Fen1 à la place de public fen1
3
cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 9
2 déc. 2005 à 13:17
Tu as essayer le getSize()?

"A game is a series of interesting choices." Sid Meier
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
2 déc. 2005 à 13:18
ben normalement ca devrait marcher
mais ou est ce que t as la référence à fen1 ???
fé voir un peu plus de code parce que t accede bien à panel1 de tte facon si c t pas le cas le comilo t enverrai ds les choux
(vaut mieux qd mm mettre pane1 en privé et faire des accesseurs dessus!
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
2 déc. 2005 à 13:32
Oui toinou a raison fait des getteurs et c'est normal que tu ne puisses faire ceci car tu n'a pas la référence à fen1...
Ton archi c'est ça en gros :
main
+ fen1
+ pane1
+ fen2
+ pane2

Mais parce que dans fen2 tu n'as aucun référence de fen1 tu ne peux pas l'appeler ? La variable n'est pas globale à ton appli (heureusement !)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 déc. 2005 à 13:51
et oui, en java, il n'existe pas de variable globale, tout est
encapsulé, donc il te faut une référence à ton objet pour te servir
d'une variable publique.

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
2 déc. 2005 à 14:16
ha ?! et comment je fais pour creer une reference a ma fen1.

petite indication supplementaire : en fait, fen1 est un fenetre MDI en fen2 une de ces JInternalFrame et je voudrais atteindre certaines des proprietes de fen1 depuis fen2 (pour faire des parametrages de fen2 en fonction de sa MDI).

merci a vous,

alonsyl
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
2 déc. 2005 à 17:02
merci a toi super_toinou,

la fenetre MDI passait sans pbl au debugger mais fen2 plantait lors de son passage dans son constructeur sur la ligne pane2.setSize(fen1.pane1.width, fen1.pane1.height).

alonsyl
0
Rejoignez-nous