2013-02-08 148 views
0

我试图用ComboBox和一个重置按钮来构建一个简单的窗体。我想丢弃我可以重置组合框。我做错了什么?未注释的combobox.select是一种解决方法。为什么discard()不能按预期工作?

继简单的例子:

public class VaadinprojectApplication extends Application { 

@Override 
public void init() { 
    final Window mainWindow = new Window("Simpleform"); 

    final List<String> aListWithStrings = new ArrayList<String>(); 
    aListWithStrings.add("Somthing"); 
    final BeanItemContainer<String> objects = new BeanItemContainer<String>(String.class, aListWithStrings); 
    final ComboBox comboBox = new ComboBox("Importers", objects); 

    // reset button 
    final Button resetButton = new Button("Reset", new Button.ClickListener() { 
     @Override 
     public void buttonClick(final ClickEvent event) { 
      // comboBox.select(comboBox.getNullSelectionItemId()); 
      comboBox.discard(); 
      System.out.println("reset"); 
     } 
    }); 
    final FormLayout form = new FormLayout(); 
    form.addComponent(comboBox); 
    form.addComponent(resetButton); 
    form.setSizeUndefined(); 

    mainWindow.addComponent(form); 
    setMainWindow(mainWindow); 
} 
} 
+0

什么是ComboBox?我在JavaDoc中找不到它。 – jlordo 2013-02-08 15:43:49

+0

这是一个Vaadin组件。 'com.vaadin.ui.ComboBox' – 2013-02-08 15:51:04

回答

0

为了选择没有在组合框中,使用此而不是discard()

comboBox.setValue(null); 
+1

实际上,这也是一个像'comboBox.select(comboBox.getNullSelectionItemId());'这样的解决方案,但它不回答问题,为什么'discard()'不起作用。 – 2013-02-11 14:39:25

0

final ComboBox comboBox = new ComboBox("Importers", objects);

线之上没有设置数据源正确。 discard()检查数据源!= null。但是在代码示例中,数据源为空,因此没有任何事情发生。为什么?我还不知道。

相关问题