ItemSetChangeEvent获取事件的值

时间:2013-02-05 21:56:45

标签: java vaadin

我有本地选择的Locales实现如下:

NativeSelect selectLang = new NativeSelect();

        for (Locale locale : localeProvider.getSupportedLocales()) {
            selectLang.setItemCaption(locale, localeProvider.getLabel(locale));
            selectLang.addItem(locale);
        }
        selectLang.setValue(user.getLocale());
        selectLang.setNullSelectionAllowed(false);
        selectLang.addItemSetChangeListener(new ItemSetChangeListener() {

            private static final long serialVersionUID = 4797561043434404341L;

            @Override
            public void containerItemSetChange(ItemSetChangeEvent event) {
                // Locale loc = (Locale)event.getContainer().getValue();
                // UI.getCurrent().setLocale(loc);
            }
        });

我想使用event.getContainer()。getValue(),但是类型为Container的方法getValue()未定义。我怎样才能获得事件的价值?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

如果要在方法中获取nativeSelect的当前值,可以使用selectLang.getValue():

selectLang.addListener(new ValueChangeListener(){

        @Override
        public void valueChange(ValueChangeEvent event) {
            selectLang.getValue();

        }
    });

当然,在组件中添加“final”。