CanvasKeyEvent.java Source code

Java tutorial

Introduction

Here is the source code for CanvasKeyEvent.java

Source

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class CanvasKeyEvent {

    public static void main(String[] args) {
        final Display display = new Display();
        Shell shell = new Shell(display);

        shell.setLayout(new RowLayout());
        final Canvas canvas = new Canvas(shell, SWT.NULL);
        canvas.setSize(500, 500);
        canvas.setBackground(display.getSystemColor(SWT.COLOR_YELLOW));

        canvas.addKeyListener(new KeyListener() {
            public void keyPressed(KeyEvent e) {
                GC gc = new GC(canvas);
                Rectangle rect = canvas.getClientArea();
                gc.fillRectangle(rect.x, rect.y, rect.width, rect.height);

                Font font = new Font(display, "Arial", 32, SWT.BOLD);
                gc.setFont(font);

                gc.drawString("" + e.character, 15, 10);

                gc.dispose();
                font.dispose();
            }

            public void keyReleased(KeyEvent e) {
            }
        });

        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
    }

}