如何在索引“i”中将项目设置为zk列表框中的选定项目

时间:2010-08-16 18:08:14

标签: java listbox zk

我使用ListModelList向ZK列表框添加了一个选项列表。接下来,我尝试遍历这些选项列表并找到所需的项目(比如“String”)。我需要将此项(“String”)设置为所选项目。

我尝试了下面的代码,但它不起作用。有没有办法做到这一点?

  liveListModel = new ListModelList(new AppModelItem [] { 
        new AppModelItem("String", "string"), 
        new AppModelItem("Number", "number"), 
        new AppModelItem("Array", "array")
    });

    String choice [] = {"String", "Hello", "XYZ" };

    Listbox typesList = new Listbox();
    typesList.setModel(liveListModel);
    for (int i = 0; i < choice.length; i ++) {
        if (choice.[i] == typesList.getItemAtIndex(i).getValue().toString());
        typesList.setSelectedItem(typesList.getItemAtIndex(i));
    }

谢谢, 索尼

1 个答案:

答案 0 :(得分:1)

如果此代码是您的原始代码,则复制并粘贴到编辑器,然后删除if表达式后面的分号,并使用equals测试字符串是否相等。 for循环应该如下所示:

for (int i = 0; i < choice.length; i++) {
    if (choice[i].equals(typesList.getItemAtIndex(i).getValue().toString())) {
        typesList.setSelectedItem(typesList.getItemAtIndex(i));
    }
}

如果仍然无效,请添加一些调试代码以检查getValue()是否确实返回了正确的值:

for (int i = 0; i < choice.length; i++) {
    if (choice[i].equals(typesList.getItemAtIndex(i).getValue().toString())) {
        typesList.setSelectedItem(typesList.getItemAtIndex(i));
    } else {
      // DEBUG CODE
      System.out.printf("Expected: %s, found: %s%n", typesList.getItemAtIndex(i).getValue().toString());
}