【问题标题】:Listener on tabPanel in GWTGWT 中 tabPanel 上的侦听器
【发布时间】:2012-03-21 10:49:44
【问题描述】:

我是 GWT 的新手。

我使用 GWT 设计器设计了 Gui。 我的 GUI 我有 tabPanel 和 4 个标签。

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

在每个选项卡中,我都有复合小部件。例如,在浏览选项卡上,我有 2 个复合树和表。

我想点击调用 RPC 的 tabBrowse。我知道 RPC 调用

但是当每个选项卡调用不同的 RPC 时,如何在非常特定的选项卡上添加点击监听器。

【问题讨论】:

    标签: java gwt gwt2 gwt-tablayoutpanel


    【解决方案1】:

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

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

    以上代码来自This thread,希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      请注意,使用 HasBeforeSelectionHandlers,您可以取消 BeforeSelectionEvent。它可以让你做任何你想做的事,当你想要切换标签时,你可以称自己为 SelectionEvent。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-05
        • 1970-01-01
        • 1970-01-01
        • 2013-12-17
        • 2021-07-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多