PageCenter s'étend de FlowPanel, pas de PageIndex. Il semble que FlowPanel
n'a pas d'attribut nommé prova
Si vous voulez PageCenter
d'accéder à un attribut protégé de PageIndex
en utilisant le mot-clé super
, alors vous devriez prolonger de PageIndex
.
public class PageCenter extends PageIndex{
public PageCenter(){
prova = 2;
}
}
Si vous voulez que les deux classes vont de FlowPanel
, essayez refactorisation votre code afin que PageIndex
et PageCenter
connaissent une certaine classe utilitaire.
public class ProvaUtility{
private Integer prova;
public Integer getProva(){}
public void setProva(Integer p){}
}
Ensuite, vous pouvez l'utiliser comme ceci:
public class PageIndex extends FlowPanel{
private ProvaUtility utility;
private PageCenter center;
public PageIndex(ProvaUtility pu){
this.utility = pu;
this.center = new PageCenter(pu);
this.add(this.center);
}
public Integer getProva(){
return this.utility.getProva();
}
}
public class PageCenter extends FlowPanel{
private ProvaUtility utility;
public PageCenter(ProvaUtility u){
this.utility = u;
this.utility.setProva(2);
}
}
Si cette référence passe autour ne fait pas pour vous, essayez d'utiliser un Singleton
class ProvaSingleton{
private static ProvaSingleton instance = null;
private Integer prova;
private ProvaSingleton(){
prova = 2;
}
public static ProvaSingleton getInstance(){
if (instance == null){
instance = new ProvaSingleton();
}
return instance;
}
public Integer getProva(){ return this.prova;}
public void setProva(Integer p){this.prova = p;}
}
Ensuite, appelez par :
ProvaInstance.getInstance().getProva()
uhm..mais l'attribut protected devrait montrer chaque variable dans le même paquet non? – markzzz
même paquet, tant que c'est une extension du même objet. PageCenter n'a absolument rien à voir avec PageIndex. –
ouais, votre solution fonctionne !!! Le seul problème est que je dois passer à chaque fois la référence, et j'ai beaucoup d'extension. Merci l'homme :) – markzzz