Appel de variables public [Résolu]

Signaler
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
-
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
-
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

Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
7
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
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
23 juin 2006
3
Tu as essayer le getSize()?

"A game is a series of interesting choices." Sid Meier
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
7
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!
Messages postés
286
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2006
1
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 !)
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
97
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/
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
9
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
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
9
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