# Class KeyNavigatorBehavior

java.lang.Object
javax.media.j3d.SceneGraphObject
javax.media.j3d.Node
javax.media.j3d.Leaf
javax.media.j3d.Behavior
com.sun.j3d.utils.behaviors.keyboard.KeyNavigatorBehavior

All Implemented Interfaces:
  `KeyListener, EventListener`

public class KeyNavigatorBehavior extends Behavior implements KeyListener
This class is a simple behavior that invokes the KeyNavigator to modify the view platform transform.

## Field Summary

### Fields inherited from class Node

`ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING`

## Constructor Summary

Constructors
Constructor
Description
`KeyNavigatorBehavior(Component c, TransformGroup targetTG)`
Constructs a key navigator behavior that uses AWT listeners and behavior posts rather than WakeupOnAWTEvent.
`KeyNavigatorBehavior(TransformGroup targetTG)`
Constructs a new key navigator behavior node that operates on the specified transform group.

## Method Summary

Modifier and Type
Method
Description
`void`
`addListener(Component c)`
Adds this behavior as a KeyListener to the specified component.
`void`
`initialize()`
Override Behavior's initialize method to setup wakeup criteria.
`void`
`keyPressed(KeyEvent evt)`
`void`
`keyReleased(KeyEvent evt)`
`void`
`keyTyped(KeyEvent evt)`
`void`
`processStimulus(Enumeration criteria)`
Override Behavior's stimulus method to handle the event.

### Methods inherited from class Behavior

`getEnable, getNumSchedulingIntervals, getSchedulingBoundingLeaf, getSchedulingBounds, getSchedulingInterval, getView, getWakeupCondition, postId, setEnable, setSchedulingBoundingLeaf, setSchedulingBounds, setSchedulingInterval, updateNodeReferences, wakeupOn`

### Methods inherited from class Node

`cloneNode, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable`

### Methods inherited from class SceneGraphObject

`clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString`

### Methods inherited from class Object

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

## Constructor Details

### KeyNavigatorBehavior

public KeyNavigatorBehavior(TransformGroup targetTG)
Constructs a new key navigator behavior node that operates on the specified transform group.

Parameters:
  `targetTG` - the target transform group

### KeyNavigatorBehavior

public KeyNavigatorBehavior(Component c, TransformGroup targetTG)
Constructs a key navigator behavior that uses AWT listeners and behavior posts rather than WakeupOnAWTEvent. The behavior is added to the specified Component and works on the given TransformGroup. A null component can be passed to specify the behavior should use listeners. Components can then be added to the behavior with the addListener(Component c) method.

Parameters:
  `c` - The component to add the KeyListener to.
  `targetTG` - The target transform group.
Since:
  Java 3D 1.2.1

## Method Details

### initialize

public void initialize()
Override Behavior's initialize method to setup wakeup criteria.

Specified by:
  `initialize` in class `Behavior`

### processStimulus

public void processStimulus(Enumeration criteria)
Override Behavior's stimulus method to handle the event.

Specified by:
  `processStimulus` in class `Behavior`
Parameters:
  `criteria` - an enumeration of triggered wakeup criteria for this behavior

### addListener

public void addListener(Component c)
Adds this behavior as a KeyListener to the specified component. This method can only be called if the behavior was created with one of the constructors that takes a Component as a parameter.

Parameters:
  `c` - The component to add the KeyListener to.
Throws:
  `IllegalStateException` - if the behavior was not created as a listener
Since:
  Java 3D 1.2.1

### keyPressed

public void keyPressed(KeyEvent evt)

Specified by:
  `keyPressed` in interface `KeyListener`

### keyReleased

public void keyReleased(KeyEvent evt)

Specified by:
  `keyReleased` in interface `KeyListener`

### keyTyped

public void keyTyped(KeyEvent evt)

Specified by:
  `keyTyped` in interface `KeyListener`