как изменить содержание tabPanel? - PullRequest
0 голосов
/ 16 января 2011

как я могу заменить вкладку TabPanel другим текстом.

в следующем коде я хочу заменить text4 на вкладке 1.

другими словами, когда на вкладке отображается виджет (например, 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 ]

1 голос
/ 17 января 2011

Простой способ - сохранить 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
0 голосов
/ 16 января 2011

Я думаю, вам нужно сохранить ссылку на метку, а затем изменить текст для метки. Я думаю, что это возможно, но трудно сказать, так как вы говорите «заменить текст4», который вы не используете в этом примере.

...