Java-FlowPanel-使用子变量中的父变量
我需要管理内容实例,但不可见。对不起,我有点生疏:)您需要如何管理变量?你在这个物体里面,应该可以做任何你需要的事情。如果需要访问父对象,请执行以下操作:Java-FlowPanel-使用子变量中的父变量,java,Java,我需要管理内容实例,但不可见。对不起,我有点生疏:)您需要如何管理变量?你在这个物体里面,应该可以做任何你需要的事情。如果需要访问父对象,请执行以下操作: public class PageIndex extends FlowPanel { private PageHeader header; private PageCenter center; private PageFooter footer; public PageIndex() { thi
public class PageIndex extends FlowPanel {
private PageHeader header;
private PageCenter center;
private PageFooter footer;
public PageIndex() {
this.header=new PageHeader();
this.add(header);
this.center=new PageCenter();
this.add(center);
this.footer=new PageFooter();
this.add(footer);
}
}
public class PageCenter extends FlowPanel {
private PageMenu menu;
private PageContent content;
public PageCenter() {
this.setStyle("center");
this.menu=new PageMenu(content);
this.add(menu);
this.content=new PageContent();
this.add(content);
}
}
public class PageMenu extends FlowPanel {
private PageContent content;
private PageMenuLogin login;
private PageMenuSearch search;
private PageMenuOffers offers;
private PageMenuStudents students;
private PageMenuShopping shopping;
private PageMenuEvents events;
public PageMenu (PageContent content) {
this.content=content;
this.login=new PageMenuLogin();
this.add(login);
this.search=new PageMenuSearch();
this.add(search);
this.offers=new PageMenuOffers();
this.add(offers);
this.students=new PageMenuStudents();
this.add(students);
this.shopping=new PageMenuShopping();
this.add(shopping);
this.events=new PageMenuEvents();
this.add(events);
// IF I WRITE THIS I GET AN org.apache.jasper.JasperException: java.lang.NullPointerException
this.content.daghine();
}
}
如果您的意思是需要从PageContent方法外部访问PageHeader,那么只需将header变量放在PageContent类上即可 下面的内容应该可以让你开始
public class PageIndex extends FlowPanel {
protected final PageContent content;
...
public PageIndex() {
content = new PageContent(this);
this.add(content);
...
}
public PageContent getContent() {
return this.content;
}
}
public class PageContent extends FlowPanel {
protected final PageIndex index;
public PageContent(PageIndex index) {
this.index = index;
}
public PageIndex getIndex() {
return this.index;
}
public void exampleFunction() {
createLabel().setLabel("HOLAAA").setStyle("content_title");
}
}
public class PageMenuLogin extends FlowPanel {
protected final PageIndex index;
public PageContent(PageIndex index) {
this.index = index;
index.getContent().exampleFunction();
}
public PageIndex getIndex() {
return this.index;
}
}
它不起作用!我用更多的细节编辑了我的主题。你怎么看我不能调用那个函数…你需要把“this”传递给构造函数,就像我的代码中演示的那样。Ok。我想还有另一种方法:)我会尝试编辑代码…如果我有问题,我会让你知道!是的,有,但它需要嵌套类。嗯…看上面的代码。我犯了一个错误。为什么?我哪里错了?谢谢你的时间,伙计:)哦,真管用!我只需要在页面菜单上切换页面内容:)
public class PageContent extends .... {
private PageHeader header;
public PageContent() {
this.header = new PageHeader()
}
// add setHeader/getHeader methods here.
}