FileDocCategorySizeDatePackage
KeyListenerExample.javaAPI DocExample1971Sun Oct 31 09:30:24 GMT 2004None

KeyListenerExample.java

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.*;

public class KeyListenerExample {    

        Display d;
        Shell s;

        KeyListenerExample()    {

            d = new Display();
            s = new Shell(d);
            
            s.setSize(250,200);
            s.setImage(new Image(d, "c:\\icons\\JavaCup.ico"));
            s.setText("A KeyListener Example");
            s.setLayout(new RowLayout());

            final Combo c = new Combo(s, SWT.DROP_DOWN | SWT.BORDER);
            c.add("Lions");
            c.add("Tigers");
            c.add("Bears");
            c.add("Oh My!");
            
           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();
        }
}