如何更改tabPanel内容?

时间:2011-01-16 18:16:04

标签: java gwt gwt2

如何将TabPanel的标签替换为另一个文本。

在以下代码中我想替换第一个标签中的text4。

换句话说,当标签显示小部件(如text1)时,如何用其他小部件(如text4)更改其内容

    public void onModuleLoad() {
    String text1 = "1111111111111111111111111111 ...";
    String text2 = "2222222222222222222222222222...";
    String text3 = "3333333333333333333333333333...";
    String text4 = "4444444444444444444444444444...";

    TabPanel panel = new TabPanel();

    FlowPanel flowpanel;

    flowpanel = new FlowPanel();
    flowpanel.add(new Label(text1));
    panel.add(flowpanel, "One");

    flowpanel = new FlowPanel();
    flowpanel.add(new Label(text2));
    panel.add(flowpanel, "Two");

    flowpanel = new FlowPanel();
    flowpanel.add(new Label(text3));
    panel.add(flowpanel, "Three");

    panel.selectTab(0);

    /* in this line exactlly , How can i raplace text4 in tab(one) */

    panel.setSize("500px", "250px");
    panel.addStyleName("table-center");
    RootPanel.get("demo").add(panel);
}

2 个答案:

答案 0 :(得分:1)

简单的方法是保留label1并随时更改值

 Label label1 = new Label(text1)
 flowpanel.add(label1);
 ...
 label1.setText(text4);

如果你没有这样做,那么你可以这样做:

FlowPanel f =  (FlowPanel) panel.getWidget(0); // first added Widget (flowpanel)
Label l = (Label) f.getWidget(0); // first added widget to panel (label)
l.setText(text4); // change the text

答案 1 :(得分:0)

我认为您需要做的是保留对Label的引用,然后更改标签的文本。我认为这可能是它,但是很难说,因为你说替换你在这个例子中没有使用的text4。