Gwt 如何获取特定类型的所有小部件?
我有一个绝对面板和不同的小部件(按钮、图像、标签、e.t.c.)。是否可以获取集合、数组或任何特定类型的小部件,例如-Image?给您: 我们可以使用迭代器。Gwt 如何获取特定类型的所有小部件?,gwt,Gwt,我有一个绝对面板和不同的小部件(按钮、图像、标签、e.t.c.)。是否可以获取集合、数组或任何特定类型的小部件,例如-Image?给您: 我们可以使用迭代器。 Iterator<Widget> arrayOfWidgets = abslPanel.iterator(); while (arrayOfWidgets.hasNext()){ Widget ch = arrayOfWidgets .next(); if (ch instanceof Button) { //Do
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)
}
}
迭代器arrayOfWidgets=abslPanel.Iterator();
while(arrayOfWidgets.hasNext()){
Widget ch=arrayOfWidgets.next();
如果(ch instanceof按钮){
//做点什么(在您的情况下,创建对象的arraylist)
}
}
如果您将gwtquery添加到项目中,这非常简单:
List<Image> allImages = $("*", myPanel).widgets(Image.class);
List allImages=$(“*”,myPanel.widgets(Image.class);
甚至可以使用复杂的css选择器来执行更精细的区分:
List<MyWidget> allMyWidgets = $("*:nth-child(even)", myPanel).widgets(MyWidget.class);
List allMyWidgets=$(“*:第n个子(偶数)”,myPanel.widgets(MyWidget.class);
是的,就是这样,为什么问题没有关闭?@Piccaza问题在这里没有关闭以获得答案;他们可以得到未来的答案,但这种方法不会找到面板中的所有小部件,只找到添加到面板中的小部件,而不会找到添加到其子面板中的小部件panels@FFire已经提到了“widgets on it”。所以他的要求将得到满足。谢谢你错过的要点。+1,但在我看来,只为一个函数使用一个外部库是过分的。是的,你是对的,但实际上gquery非常轻量级,提供了许多通往java世界的有用快捷方式,这使你的生活非常简单,因此这可能是你使用gquery的第一个原因;-)。事实上,我不会在启动任何gwt项目时不包括两个库:gin和gquery。在pom.xml和ui.xml文件中编写几行代码要比编写迭代器之类的代码块容易得多。