2012-08-27 3 views
2

GWT에서 동적 TabPanel을 만들려고합니다. 사용자가 TextBox에 입력하는 내용에 따라 TabPanel의 텍스트를 변경하고 싶습니다. 예를 들어, "Tab one"을 입력하면 탭 텍스트가 "Tab one"으로 변경됩니다. 그러나, 나는 탭의 이름을 변경하는 방법을 찾을 수 없습니다. getTitle()은 실제 텍스트가 아닌 제목 만 반환합니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?GWT TabPanel 이름 변경

한 가지 방법으로 탭을 삭제하고 동일한 내용으로 다시 만들 수 있지만 가능한 경우이 문제를 방지하고 싶습니다. 감사합니다. .

+3

TabPanel.getTabBar() 및 TabBar.setTabText()? – onnoweb

+0

완벽한! 나는 TabPanel.setText() 또는 TabPanel.getTabBar(). getTab(). setText()만을 찾고 있었다. –

답변

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

    } 
}