0

我有像这样实现的本地选择的语言环境:

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(),但是方法 getValue() 没有为 Container 类型定义。我怎样才能获得事件的价值?

4

2 回答 2

0

SelectExample.java (dev.vaadin.com)

于 2013-02-07T12:32:28.760 回答
0

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

selectLang.addListener(new ValueChangeListener() {

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

        }
    });

当然,将“final”添加到您的组件中。

于 2013-02-08T13:11:43.013 回答