【问题标题】:How to iterate through ComboBox in Vaadin?如何在 Vaadin 中遍历 ComboBox?
【发布时间】:2011-11-15 10:28:55
【问题描述】:

我正在与 Vaadin 合作,但在迭代 ComboBox 中的选项时遇到了一些麻烦。我的对象看起来像:

class MyObject{
    private String text;
    private Integer i;
    public MyObject(String text,Integer i){
        this.text = text;
        this.i = i;
    }
    public String toString(){
        return text;
    }
    //Getters and setters omitted
}

我将它添加到这样的框中:

MyObject o1 = new MyObject("o1",23);
MyObject o2 = new MyObject("o2",44);
ComboBox box=new ComboBox();
box.addItem(o1);
box.addItem(o2);

当我想获取所选数据时,这非常有用:

MyObject o3 = (MyObject)box.getValue();

但现在我需要遍历 ComboBox 中的选项,但我不知道该怎么做。我似乎需要某种 ID,但我不知道如何使用它。我尝试了以下但没有成功,但它不起作用(而且真的很丑):

Collection IDs = box.getItemIds();
Iterator it = IDs.iterator();
while(it.hasNext()){
    Object id = it.next();
    Item item = IDs.getItem(id);
    //What to do now?
}

我想保持我的对象简单,避免使用 bean 和复杂的容器。 Vaadins 的例子主要是针对 String 的,这对我没有多大帮助。非常感谢任何帮助。

【问题讨论】:

    标签: java combobox containers vaadin


    【解决方案1】:

    如果你看 javadoc for ComboBox,你会发现addItem方法实际上是定义在AbstractSelect class上的,它实际上是以itemId为参数的。 (这又被委托给 Select 的容器,默认情况下是 IndexedContainer)

    所以,Collection IDs=box.getItemIds(); 将返回您的 MyObject 集合 - 即您实际追求的内容。

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多