KeyListenerExample.java Source code

Java tutorial

Introduction

Here is the source code for KeyListenerExample.java

Source

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.graphics.Image;
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 KeyListenerExample {

    Display d;

    Shell s;

    KeyListenerExample() {

        d = new Display();
        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("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();
    }

    public static void main() {
        new KeyListenerExample();
    }

}