GWT: доступ к ListBox внутри панели внутри панели - PullRequest
0 голосов
/ 09 августа 2011

У меня есть панель, которая содержит множество (множественный выбор) ListBox, каждый внутри своей панели, и мне нужно выяснить, какие значения выбраны в ListBoxes. Пройдя через 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 голосов
/ 09 августа 2011

Почему вы не можете просто объявить их как переменные экземпляра?

0 голосов
/ 09 августа 2011

Получил это работает. Очевидно, GWT вставляет свои собственные виджеты в вашу панель, помимо тех, которые вы добавляете сами (поэтому создание Panel, а затем добавление ListBox в in приведет к появлению не только одного виджета на итерации).

Итак, чтобы решить проблему, добавьте экземпляр проверки перед кастом

...