# Class KeyEvent

java.lang.Object
java.util.EventObject
org.eclipse.swt.events.TypedEvent
org.eclipse.swt.events.KeyEvent

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `TraverseEvent, VerifyEvent`

public class KeyEvent extends TypedEvent
Instances of this class are sent as a result of keys being pressed and released on the keyboard.

When a key listener is added to a control, the control will take part in widget traversal. By default, all traversal keys (such as the tab key and so on) are delivered to the control. In order for a control to take part in traversal, it should listen for traversal events. Otherwise, the user can traverse into a control but not out. Note that native controls such as table and tree implement key traversal in the operating system. It is not necessary to add traversal listeners for these controls, unless you want to override the default traversal.

See Also:
  - `KeyListener`
  - `TraverseListener`
  - Sample code and further information
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`char`
`character`
`boolean`
`doit`
A flag indicating whether the operation should be allowed.
`int`
`keyCode`
`int`
`keyLocation`
depending on the event, the location of key specified by the keyCode or character.
`int`
`stateMask`
the state of the keyboard modifier keys and mouse masks at the time the event was generated.

### Fields inherited from class TypedEvent

`data, display, time, widget`

### Fields inherited from class EventObject

`source`

## Constructor Summary

Constructors
Constructor
Description
`KeyEvent(Event e)`
Constructs a new instance of this class based on the information in the given untyped event.

## Method Summary

Modifier and Type
Method
Description
`String`
`toString()`
Returns a string containing a concise, human-readable description of the receiver.

### Methods inherited from class EventObject

`getSource`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### character

public char character

See Also:
  - `Event.character`

### keyCode

public int keyCode

See Also:
  - `Event.keyCode`

### keyLocation

public int keyLocation
depending on the event, the location of key specified by the keyCode or character. The possible values for this field are `SWT.LEFT`, `SWT.RIGHT`, `SWT.KEYPAD`, or `SWT.NONE` representing the main keyboard area.

The location field can be used to differentiate key events that have the same key code and character but are generated by different keys on the keyboard. For example, a key down event with the key code equal to SWT.SHIFT can be generated by the left and the right shift keys on the keyboard.

The location field can only be used to determine the location of the key code or character in the current event. It does not include information about the location of modifiers in the state mask.

Since:
  3.6
See Also:
  - `SWT.LEFT`
  - `SWT.RIGHT`
  - `SWT.KEYPAD`

### stateMask

public int stateMask
the state of the keyboard modifier keys and mouse masks at the time the event was generated.

See Also:
  - `SWT.MODIFIER_MASK`
  - `SWT.BUTTON_MASK`

### doit

public boolean doit
A flag indicating whether the operation should be allowed. Setting this field to `false` will cancel the operation.

## Constructor Details

### KeyEvent

public KeyEvent(Event e)
Constructs a new instance of this class based on the information in the given untyped event.

Parameters:
  `e` - the untyped event containing the information

## Method Details

### toString

public String toString()
Returns a string containing a concise, human-readable description of the receiver.

Overrides:
  `toString` in class `TypedEvent`
Returns:
  a string representation of the event