如何获得某些类型的所有小部件?

时间:2013-03-09 06:14:44

标签: gwt

我有一个 AbsolutePanel 和不同的小部件(按钮,图像,标签,e.t.c。)。是否可以获取集合或数组或某些类型的所有小部件,例如 - Image?

2 个答案:

答案 0 :(得分:6)

你走了:

我们可以使用iterator.

Iterator<Widget> arrayOfWidgets = abslPanel.iterator();
while (arrayOfWidgets.hasNext()){
  Widget ch = arrayOfWidgets .next();
  if (ch instanceof Button) {
  //Do something (in your case make an arraylist of your objects)
  }
}

答案 1 :(得分:2)

如果你将gwtquery添加到你的项目中,这很容易:

List<Image> allImages = $("*", myPanel).widgets(Image.class);

即使您可以使用复杂的CSS选择器来执行更精细的歧视:

List<MyWidget> allMyWidgets = $("*:nth-child(even)", myPanel).widgets(MyWidget.class);