2

GWT で動的な TabPanel を作成しようとしています。ユーザーが TextBox に入力した内容に応じて、TabPanel のテキストを変更したいと考えています。たとえば、「Tab one」と入力すると、タブ テキストが「Tab one」に変更されます。ただし、タブの名前を変更する方法が見つからないようです。getTitle() は、実際のテキストではなく、タイトルを返すだけです。誰もこれを行う方法を知っていますか?

タブを削除して同じ内容で作り直すというのも一つの方法かもしれませんが、できれば避けたいところです。ありがとう。

4

1 に答える 1

2

「onnoweb」はすでに正しい答えを出していますが、ここにデモの例があります。

package stefank.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TabLayoutPanel;

public class _02_GWTAnimation implements EntryPoint {

    public void onModuleLoad() {

        // Create a tab panel
        final TabLayoutPanel tabPanel = new TabLayoutPanel(2.5, Unit.EM);
        tabPanel.setHeight("100px");
        tabPanel.setAnimationDuration(1000);
        tabPanel.getElement().getStyle().setMarginBottom(10.0, Unit.PX);

        // Add a home tab
        String[] tabTitles = {"hello", "world"};
        HTML homeText = new HTML("Lorem ipsum");
        tabPanel.add(homeText, tabTitles[0]);


        // Add a tab
        HTML moreInfo = new HTML("Lorem ipsum");
        tabPanel.add(moreInfo, tabTitles[1]);

        // Return the content
        tabPanel.selectTab(0);
        tabPanel.ensureDebugId("cwTabPanel");

        RootPanel.get().add(tabPanel);

        Button changeText = new Button("change Text");
        changeText.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                tabPanel.setTabText(0, "new Title");                
            }
        });
        RootPanel.get().add(changeText);

    }
}
于 2012-08-27T20:53:59.013 に答える