GWT:访问Panel内Panel中的ListBox

时间:2011-08-08 21:47:01

标签: gwt casting listbox navigation widget

我有一个面板,其中包含一组(多选)ListBoxes,每个面板都位于自己的面板中,我需要弄清楚ListBox中所选的值是什么。通过API,我能看到的唯一方法是(伪代码):

for (Wigdet w : outerPanel)
  Panel innerPanel = (Panel) w;
  for (Widget s : innerPanel)  // only has the ListBox in it
    ListBox box = (ListBox) s;
    // do stuff with the ListBox to populate the list of selected options

问题在于 - eclipse没有抱怨并且它编译得很好,但是在运行时会产生一个ClassCastException(在第一次施法时 - 我认为它在第二次也会有同样的问题,但是因为我可以我不能肯定地说到这一点

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

搞定了。显然GWT会将自己的小部件插入到面板中,除了你自己添加的小部件之外(因此创建一个Panel然后添加一个ListBox将导致迭代中不仅仅是一个小部件)。

因此,要解决此问题,请在转换之前抛出一个instanceof检查

答案 1 :(得分:0)

为什么不能将它们声明为实例变量?