Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从其他选项卡添加GWT选项卡_Gwt - Fatal编程技术网

从其他选项卡添加GWT选项卡

从其他选项卡添加GWT选项卡,gwt,Gwt,我想从内容区域内向某个选项卡栏添加一个选项卡。内容区域是动态的,因此位于不同的类文件中。我所知道的获取选项卡栏当前状态的唯一方法(不是创建新的选项卡栏对象)是创建一个静态方法和变量来访问该对象。然而,在我得到标签栏后,我在修改标签栏时遇到了问题。我可以调用它内部的函数而不需要太多麻烦,比如检索字符串,但我不能添加选项卡,这正是我需要做的。以下是一般要点: 在一个名为XYZ的类中: private static MyPersonalTabPanel mypersonalTabPanel; pub

我想从内容区域内向某个选项卡栏添加一个选项卡。内容区域是动态的,因此位于不同的类文件中。我所知道的获取选项卡栏当前状态的唯一方法(不是创建新的选项卡栏对象)是创建一个静态方法和变量来访问该对象。然而,在我得到标签栏后,我在修改标签栏时遇到了问题。我可以调用它内部的函数而不需要太多麻烦,比如检索字符串,但我不能添加选项卡,这正是我需要做的。以下是一般要点:

在一个名为XYZ的类中:

private static MyPersonalTabPanel mypersonalTabPanel;

public XYZ {
  myperosonalTabPanel = this;
}
在我的另一个文件中,单击一个按钮,我将触发:

MyPersonalTabPanel.getAppInstance().getXYZTabPanel().add(mywidget, "My Widget");
我可以使用我的函数“getXYZTabPanel()”而没有任何错误,但是当我尝试“添加”时,它只会在白色屏幕上崩溃,没有相关错误。有什么帮助吗?我以前见过项目添加选项卡,但找不到任何通过这样的静态对象进行添加的项目


我在onClick方法中还没有这个,我必须这样做才能访问静态会话变量吗?它基本上是在页面加载时调用的。

检查初始化顺序?您需要确保要添加选项卡的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(小部件)调用之前调用TestClass的createPanel()。

我有点搞不清楚它的意图是什么-是否要找到从另一个类添加选项卡的方法?或者你在问如何使用静态场使其工作?