Portée des variables [Résolu]

Signaler
Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
5 mars 2008
-
Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
5 mars 2008
-
Bonjour,
jai encore un petit problème pour changer....
voici ma classe principale :
public class GridBagLayoutDemo extends Frame{
private int _x;
public GridBagLayoutDemo ()
{
...
JComponent image = new MyCanvas(img);
final Voiture voiture = new Voiture();
voiture.setKgear(image._o); //éclipse me dit que image._o n'existe pas...

private static class MyCanvas extends JComponent implements MouseListener {
public int _o=0;
......
}
}

et jai aussi ma classe Voiture :
public class Voiture{
private int _kGear;
public void setKgear(int kgear)
{
_kGear=kgear;
}
}

et le problème est que je n'arrive pas à modifier _kGear de ma classe Voiture, j'aimerais lui donner la valeur _o de la classe MyCanvas et j'y arrive pas... :'(

2 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
Salut,

Il s'agit tout simplement d'un problème d'interface :
JComponent image

Hors, l'interface JComponent ne possède pas de "_o", MyCanvas si, donc cast ton instance d'image en MyCanvas pour que le compilo sache quoi faire :

image._o devient : ((MyCanvas) image)._o

Note : ta façon de faire n'est pas propre du tout ! Il vaudrait mieux rendre ton membre _o privée à ta classe, et faire un getter/setter dessus !

______________________________________
DarK Sidious
Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
5 mars 2008
1
Exact, merci!.
oui je sais que de rendre public la variable n'es pas propre, mais je ne comprenais pas pourquoi ça ne marchait pas, alors javais enlevé mon getVariable et l'avait rendue public pour etre sure que ça ne venait pas de là.
Merci encore.