2009-04-21 110 views
0

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

在一个类中:我在其他文件

private static MyPersonalTabPanel mypersonalTabPanel; 

public XYZ { 
    myperosonalTabPanel = this; 
} 

,按钮上的点击,我触发此:

MyPersonalTabPanel.getAppInstance().getXYZTabPanel().add(mywidget, "My Widget"); 

我可以使用我的函数“getXYZTabPanel()”没有任何错误,但是当我尝试“添加”时,它只会在白屏时崩溃,没有相关的错误。任何帮助?我见过项目之前添加标签,但无法找到任何通过像这样的静态对象。

我没有这个onClick方法,但我必须这样做才能访问静态会话变量?它基本上被称为页面加载的时刻。

+0

我有点困惑,想要什么 - 你想找到一种方法来添加另一个类的选项卡?或者你在问如何使用静态字段使其工作? – Chii 2009-04-27 13:07:14

回答

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"); 
    } 
} 

确保TestClass中的createPanel()的addTab(微件)调用发生之前被调用。

相关问题