我想从内容区域内的某个标签栏添加标签。内容区域是动态的,因此位于不同的类文件中。我知道获取选项卡栏的当前状态(不创建新的选项卡栏对象)的唯一方法是创建一个静态方法和变量来访问该对象。但是,在我得到标签栏后,我在修改标签栏时遇到了问题。我可以在其中调用函数而不会有太多麻烦,例如检索字符串,但我无法添加选项卡,这是我需要做的。这是一般要点:
在一个名为XYZ的类中:
private static MyPersonalTabPanel mypersonalTabPanel;
public XYZ {
myperosonalTabPanel = this;
}
在我的另一个文件中,点击一个按钮,我就触发了这个:
MyPersonalTabPanel.getAppInstance().getXYZTabPanel().add(mywidget, "My Widget");
我可以使用我的函数“getXYZTabPanel()”没有错误,但是当我尝试“添加”时,它只会崩溃,白屏,没有相关错误。有帮助吗?我之前看过项目添加标签,但是找不到像这样的静态对象。
我还没有在onClick方法中使用它,为了让我访问静态会话变量,我是否必须这样做?它基本上被称为页面加载的那一刻。
答案 0 :(得分:1)
检查初始化顺序?您需要确保要添加选项卡的XYZ实例是最近一次调用“new XYZ()”创建的实例,并且您需要确保它已经在您之前已经新建了尝试添加标签。
另外,我假设XYZ扩展了MyPersonalTabPanel,它扩展了TabPanel?为了澄清,此代码是否适用于您的情况:
public class MyPersonalTabPanel extends TabPanel {
public static MyPersonalTabPanel instance;
public MyPersonalTabPanel() {
instance = this;
}
}
public class TestClass {
public void createPanel() {
RootPanel.get().add(new MyPersonalTabPanel());
}
public void addTab(Widget widget) {
MyPersonalTabPanel.instance.add(widget, "My Widget");
}
}
确保在addTab(Widget)调用发生之前调用TestClass的createPanel()。