向面板添加动态小部件(GWT)

时间:2009-05-14 14:13:06

标签: java gwt onclick

我在向面板添加可变数量的标签时遇到问题。我的问题是,由于某种原因,在添加ClickListener时,它会返回void而不是小部件(错误)。如果我只有“新标签('xyz')”可以正常工作,但我需要每个面板都有自己的ClickListener。这是代码:

for (int x = 0; x < productIDArray.length(); x++) {
  mainPanel.add(new Label("Test").addClickListener(new ClickListener() {
    @Override
    public void onClick(Widget sender) {
      // TODO Auto-generated method stub
    }
  }));
 }

1 个答案:

答案 0 :(得分:3)

方法链接返回的值始终是最后一个值。如果更改新的A().b().c(),则返回的类型将是c的返回类型。

在您的示例中,new Label("Test").addClickListener(...的返回类型是ClickListener的addClickListener返回类型,该类型为void。

您可以创建标签,添加点击监听器,然后添加它:

for(int x = 0;x<productIDArray.length();x++) {
  Label l = new Label("Test);
  l.addClickListener(...);
  mainPanel.add(l);
 }