GWT中tabPanel上的监听器

Gam*_*der 2 java gwt gwt2 gwt-tablayoutpanel

我是GWT的新手.

我使用GWT设计师设计了Gui.我的GUI有tabPanel4个标签.

private TabPanel getWorkplacePanel() {
    if (WorkplacePanel == null) {
        WorkplacePanel = new TabPanel();

        WorkplacePanel.setStyleName("Workpalce-MyWorkPlace");
        WorkplacePanel.add(getMyWorkPlacePanel(), "My Workplace", false);

        WorkplacePanel.add(getBrowsePanel(), "Browse", false);
        WorkplacePanel.add(getSearchPanel(), "Search", false);
        WorkplacePanel.add(getTaskPanel(), "Tasks", false);
        WorkplacePanel.setSize("1450px", "750px");

    }
    return WorkplacePanel;
}
Run Code Online (Sandbox Code Playgroud)

在每个标签中我都有复合小部件.对于浏览选项卡上的示例,我有2个复合树和表.

我想点击调用RPC.i知道RPC调用的tabBrowse

但是如何在每个Tab调用不同的RPC时在特定的选项卡上添加单击侦听器.

Sha*_*hid 5

GWT中的TabPanel实现HasSelectionHandlersHasBeforeSelectionHandlers.因此,您需要向TabPanel添加选择处理程序.在OnSelection方法中,您可以使用Widget的索引确定选择了哪个Tab项(即Widget).然后,您可以进行类型检查或使用某些自定义类型标识符(如果需要)来确定选择了哪个选项卡项(例如,浏览,搜索等):

WorkplacePanel.addSelectionHandler(new SelectionHandler<Integer>(){
  public void onSelection(SelectionEvent<Integer> event){
   int tabId = event.getSelectedItem();
   Widget tabWidget = tabpanel.getWidget(tabId);
 }
});
Run Code Online (Sandbox Code Playgroud)

上面的代码来自This thread,它可能会对你有所帮助.