1

我在向面板添加可变数量的标签时遇到问题。我的问题是,由于某种原因,添加我的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
    }
  }));
 }
4

1 回答 1

3

方法链接的返回值始终是最后一个值。如果更改 new 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);
 }
于 2009-05-14T15:02:07.047 回答