Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gwt 如何获取特定类型的所有小部件?_Gwt - Fatal编程技术网

Gwt 如何获取特定类型的所有小部件?

Gwt 如何获取特定类型的所有小部件?,gwt,Gwt,我有一个绝对面板和不同的小部件(按钮、图像、标签、e.t.c.)。是否可以获取集合、数组或任何特定类型的小部件,例如-Image?给您: 我们可以使用迭代器。 Iterator<Widget> arrayOfWidgets = abslPanel.iterator(); while (arrayOfWidgets.hasNext()){ Widget ch = arrayOfWidgets .next(); if (ch instanceof Button) { //Do

我有一个绝对面板和不同的小部件(按钮、图像、标签、e.t.c.)。是否可以获取集合、数组或任何特定类型的小部件,例如-Image?

给您:

我们可以使用迭代器。

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文件中编写几行代码要比编写迭代器之类的代码块容易得多。