如何在列表中按值找到ID?

时间:2015-08-20 14:17:45

标签: java swt

了解基础知识。

JAVA 1.7 SWT。

我有一个文本字段和onle列表。 当用户在文本字段中输入内容时,应该选择列表中的第一个匹配值。

我用list.selection(list.indexOf(value))尝试但list.indexOf(value)只返回完全输入的字符串的ID。

我很确定,检查列表中每个值的所有字符并不是一个好习惯。

有没有人能给我一个暗示最佳做法是什么?

迈克尔

2 个答案:

答案 0 :(得分:1)

假设您有一个Text小部件,这是一段代码,可以满足您的需求:

    final Text textbox = new Text(composite_1, SWT.BORDER);
    textbox.addModifyListener(new ModifyListener() {
      @Override
      public void modifyText(ModifyEvent arg0) {
        String s = textbox.getText();
        if (s.length() == 0) {
          list.deselectAll();
          return;
        }
        String[] items = list.getItems();
        for (int i = 0; i < items.length; i++) {
          if (items[i].startsWith(s)) {
            // found the first item which match the typed text (case sensitive) in the textbox, select it and stop
            list.select(i);
            break;
          }
        }
      }  
    });

答案 1 :(得分:0)

我做过..

String pattern ="^"+item+"\\w*\\_*"; 

for(int j = 0 ; j < lstTables.getItemCount(); j++){ 
    if(list.getItem(j).matches(pattern) == true){ 
        list.select(j); 
        list.showSelection(); 
        lstTables.setBackground(Colorlist.textfieldClear); 
        lstTables.setFocus(); 
        return true; 
        } 
    }