Вам необходимо предоставить функциональный fromString()
метод в конвертере!
У меня была та же проблема, что и у вас, и когда я реализовал fromString()
с рабочим кодом, ComboBox ведет себя как и ожидалось.
Этот класс предоставляет несколько моих объектов для целей dev-test:
public class DevCatProvider {
public static final CategoryObject c1;
public static final CategoryObject c2;
public static final CategoryObject c3;
static {
// Init objects
}
public static CategoryObject getCatForName(final String name) {
switch (name) {
case "Kategorie 1":
return c1;
case "Cat 2":
return c2;
case "Steuer":
return c3;
default:
return c1;
}
}
}
Объект конвертера:
public class CategoryChooserConverter<T> extends StringConverter<CategoryObject> {
@Override
public CategoryObject fromString(final String catName) {
//This is the important code!
return Dev_CatProvider.getCatForName(catName);
}
@Override
public String toString(final CategoryObject categoryObject) {
if (categoryObject == null) {
return null;
}
return categoryObject.getName();
}
}