Java 如何.trim()显示Vaadin组合框的显示字段?

Java 如何.trim()显示Vaadin组合框的显示字段?,java,combobox,vaadin,trim,vaadin7,Java,Combobox,Vaadin,Trim,Vaadin7,在Vaadin7.x中,我有一个使用JPA容器的组合框设置。它的设置如下: mycombo.setItemCaptionPropertyId("name"); 效果很好。但是,映射到该组合的实体使用CHAR50列作为名称,不能更改。一切都很好,但当我复制/粘贴(例如,从组合框到其他文本输入)时,看到所有这些空格是很烦人的 当然,当我以编程方式传入组合值时,我会修剪它,但我希望总是自动修剪显示 我会通过创建自定义转换器来实现这一点吗 谢谢由于时间不够,我找不到比下面更好的了: public cl

在Vaadin7.x中,我有一个使用JPA容器的组合框设置。它的设置如下:

mycombo.setItemCaptionPropertyId("name");
效果很好。但是,映射到该组合的实体使用CHAR50列作为名称,不能更改。一切都很好,但当我复制/粘贴(例如,从组合框到其他文本输入)时,看到所有这些空格是很烦人的

当然,当我以编程方式传入组合值时,我会修剪它,但我希望总是自动修剪显示

我会通过创建自定义转换器来实现这一点吗


谢谢

由于时间不够,我找不到比下面更好的了:

public class MyVaadinUI extends UI {

@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = MyVaadinUI.class, widgetset = "com.gabrielruiu.vaadin.AppWidgetSet")
public static class Servlet extends VaadinServlet {
}

@Override
protected void init(VaadinRequest request) {
    final VerticalLayout layout = new VerticalLayout();
    layout.setMargin(true);
    setContent(layout);

    ComboBox comboBox = new ComboBox("my combobox", Arrays.asList("  Killer croc  ", "        Joker", "Penguin      "));
    comboBox.setConverter(new Converter<Object, String>() {

        @Override
        public String convertToModel(Object value, Class<? extends String> targetType, Locale locale) throws ConversionException {
            if (value != null) {
                return value.toString();
            }
            return null;
        }

        @Override
        public Object convertToPresentation(String value, Class<?> targetType, Locale locale) throws ConversionException {
            if (value != null) {
                return value.trim();
            }
            return null;
        }

        @Override
        public Class<String> getModelType() {
            return String.class;
        }

        @Override
        public Class<Object> getPresentationType() {
            return Object.class;
        }
    });
    layout.addComponent(comboBox);
}

}

问题是,在测试它时,组合框中的值在我选择它后消失。如果你能找到一个解决方案,那就太好了,但这正是我目前能找到的。

你能发布一些截图吗?这会更好地帮助理解,不是现在,但如果真的需要,我可以稍后再做。但基本上,如果组合的显示值应该是Apple,但在数据库中,它返回为Apple。我想让它显示苹果,即使这不是从数据库加载的。