У меня есть простой код:
ComboBox<String> combo=new ComboBox<>("Combo");
Button button = new Button("Button");
button.addClickListener(new ComponentEventListener<ClickEvent<Button>>() {
@Override
public void onComponentEvent(ClickEvent<Button> event) {
combo.setItems("11","22");
combo.setValue("22");
}
});
Когда я впервые нажимаю кнопку, в выпадающем списке отображаются элементы "11" и "22", и выбирается значение "22".
Второй щелчок очищает значение, но элементы «11» и «22» все еще присутствуют.В случае, если я выбрал «11» или оставил «22» в выпадающем списке и нажал кнопку - значение очищается.
Кажется, что setValue () работает только тогда, когда выпадающий список пуст, но следующий код также не помогает:
combo.setValue(null);
combo.clear();
combo.setItems("11","22");
combo.setValue(null);
combo.clear();
combo.setValue("22");
Следующий код корректно устанавливает значение ComboBox, независимо от того, выбрал ли я какое-либо значение или очистил его перед щелчком:
ComboBox<String> combo=new ComboBox<>("Combo");
combo.setItems("11","22");
Button button = new Button("Button");
button.addClickListener(new ComponentEventListener<ClickEvent<Button>>() {
@Override
public void onComponentEvent(ClickEvent<Button> event) {
combo.setValue("22");
}
});
Но я должен установить элементы Combobox динамически и последнийРешение не подходит для меня.Vaadin версия 10.0.9.У кого-нибудь есть предложения или советы?
PS.Спасибо!
Я пробовал следующий код:
combo.setItems(Collections.emptyList());
combo.setItems("11","22");
combo.setValue("22");
Но он также не работает.Этот код работает, только если значение в combo пусто, но если я что-то ввожу в combo, код просто очищает значение на .setItems()
, и далее .setValue()
не работают.
Если значение combo пусто, кодхорошо работает.