关闭gwt中的一个选项卡后,选项卡索引出现问题

关闭gwt中的一个选项卡后,选项卡索引出现问题,gwt,tabs,indexing,Gwt,Tabs,Indexing,我正在使用开发GWT中的应用程序。我为选项卡实现了一个关闭选项。现在我的问题是,当我关闭一个选项卡并尝试在另一个选项卡中添加一些数据时,它采用了错误的索引 例如:我有4个选项卡,然后关闭第三个选项卡。我打开第四个选项卡,尝试在那里添加一些内容,但它的索引显示为3,而不是4,因为只有3个 如何在程序中重置选项卡索引,或者如何在任何解决方案中读取选项卡的正确索引,就像在删除它之前一样 这就是我添加新选项卡和关闭事件的地方 HorizontalPanel horizontalPanel = new H

我正在使用开发GWT中的应用程序。我为选项卡实现了一个关闭选项。现在我的问题是,当我关闭一个选项卡并尝试在另一个选项卡中添加一些数据时,它采用了错误的索引

例如:我有4个选项卡,然后关闭第三个选项卡。我打开第四个选项卡,尝试在那里添加一些内容,但它的索引显示为3,而不是4,因为只有3个

如何在程序中重置选项卡索引,或者如何在任何解决方案中读取选项卡的正确索引,就像在删除它之前一样

这就是我添加新选项卡和关闭事件的地方

HorizontalPanel horizontalPanel = new HorizontalPanel();
Image image = new Image();
Label label = new Label("New Report: " + k);
label.setWordWrap(false);

horizontalPanel.add(label);
horizontalPanel.add(image);

image.setUrl("images/1305803163_close.png");
tabpanel.add(newTab[k], horizontalPanel);
tabindexx[k] = k;

image.addClickHandler(new ClickHandler() {
  @Override
  public void onClick(ClickEvent event) {
    tabpanel.remove(tabpanel.getTabBar().getSelectedTab());
  }
}); 
在代码的某些部分,我像这样访问选项卡索引

int selectedtab = tabpanel.getTabBar().getSelectedTab();

当然,这将返回一个基于特定时刻存在的选项卡数量的索引,因此我需要将它们存储在某个位置,否则我必须在关闭后重置选项卡索引。

这将发生,因为索引编号是当前选项卡集的索引。(如果其中一个关闭,显然会影响其他人)

我现在对GWT有点生疏,但我相信删除或选择选项卡的唯一方法是使用索引


一种解决方案是管理代码中的选项卡代表列表(某些选项卡标识符),并在代码中发生删除时在该列表中执行镜像删除。然后,您可以查找要在删除后更新的选项卡的新索引,并获得正确的索引。(选项卡标识符可以与在任何删除之前开始时的选项卡原始索引一样简单)

选项卡面板使用基于0的索引,因此索引3实际上是第四个元素,因为选项卡编号为0-1-2-3,但可能这只是示例中的一个输入错误。。。你可以发布一些代码让你的问题更清楚一点吗?不要在评论中发布代码,按问题标签下的“编辑”链接将其添加到你的问题中。