如何获取某种类型的所有小部件?
答
在这里你去:
我们可以使用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)
}
}
答
如果添加gwtquery到您的项目它是很容易:
List<Image> allImages = $("*", myPanel).widgets(Image.class);
即使你可以使用先进的CSS选择器进行更精细的鉴别:
List<MyWidget> allMyWidgets = $("*:nth-child(even)", myPanel).widgets(MyWidget.class);
+1
+1,但在我看来它的矫枉过正使用外部库仅用于一个功能。 – FFire 2013-03-18 14:09:28
+1
是的,你是对的,但实际上gquery真的是轻量级的,并提供了很多有用的捷径,让你的生活真的很容易,所以这可能是你使用gquery的第一个理由;-)。事实上,如果不包括几个库,我就不会启动任何gwt项目:杜松子酒和gquery。在我的pom.xml和我的ui.xml文件中编写几行文本比编写一些代码块(比如迭代器)要容易得多。 – 2013-03-18 15:01:19
是这是它,为什么没有关闭的问题? – Dipak 2013-03-09 19:03:39
@Piccaza在这里获取答案的问题并未关闭;他们可以得到未来的答案,仍然 – 2013-03-11 09:48:38
这种方法没有找到面板中的所有小部件,只是添加到面板的小部件而不是添加到其子面板的小部件 – 2013-03-18 12:51:41