Combo: getItems()
import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.events.KeyListener; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class MainClass { public static void main(String[] a) { Display d = new Display(); Shell s = new Shell(d); s.setSize(250, 200); s.setText("A KeyListener Example"); s.setLayout(new RowLayout()); final Combo c = new Combo(s, SWT.DROP_DOWN | SWT.BORDER); c.add("A"); c.add("B"); c.add("C"); c.add("D"); c.addKeyListener(new KeyListener() { String selectedItem = ""; public void keyPressed(KeyEvent e) { if (c.getText().length() > 0) { return; } String key = Character.toString(e.character); String[] items = c.getItems(); for (int i = 0; i < items.length; i++) { if (items[i].toLowerCase().startsWith(key.toLowerCase())) { c.select(i); selectedItem = items[i]; return; } } } public void keyReleased(KeyEvent e) { if (selectedItem.length() > 0) c.setText(selectedItem); selectedItem = ""; } }); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); } }