Java Reference
In-Depth Information
2. Instantiate an object of that class. This will be the event listener.
3. Register the event listener with the event source (e.g., a window or a panel).
Note that if a keyboard key is pressed and then released, then the keyPressed ,
keyReleased ,and keyTyped methods of the event listener will be called in that order.
Here is an example of creating a key listener object.
1 class MyKeyListener implements KeyListener {
2
public void keyPressed (KeyEvent e )
{
3
char c = e . getKeyChar () ;
4
if (charList . contains(c))
{
5
charList . remove((Character) c) ;
}
6
7
System . out . p r i n t l n ( c ha r L i s t ) ;
8
}
9
public void keyReleased (KeyEvent e )
{}
10
public void keyTyped(KeyEvent e )
{}
11 }
12 ...
13 MyKeyListener keyListener = new MyKeyListener () ;
Note that all three methods take as input an event. When the event occurs, the corre-
sponding method is called and the event is passed as a parameter. For key events, the event
class is KeyEvent .The getKeyChar method for the event object returns the key on which
the event occurred. Note that the cast at Line 5 of the code is required. If it is not present,
Java will take the ASCII code of the character and remove from the ArrayList the element
with that index. The keyPressed method finds the key that is pressed and removes it from
the ArrayList if present. At the end, the ArrayList is redisplayed. Note that the contains
method of the ArrayList class checks to see if the element belongs to the ArrayList .
Often, when writing event listeners, one does not want to override all the methods
of the interface that we are inheriting. For example, the interface for a mouse listener
has five methods and one rarely needs to override all of them. To help the programmer,
abstract classes were added to the Java library that contain empty implementation of the
methods for most interfaces. For example, there is a KeyAdapter class that contains empty
implementation of the three methods of the KeyListener interface. Here is an example of
how the class can be used.
class MyKeyListener implements KeyAdapter
{
public void keyPressed (KeyEvent e )
{
char c = e . getKeyChar () ;
if (charList . contains(c))
{
charList .remove((Character) c) ;
System. out . println ( charList ) ;
}
} ...
MyKeyListener keyListener = new MyKeyListener () ;
This rewrite saves some space because we can choose which methods to override. After
the key listener is created, we need to register it with the event source (in our case this will
be a JFrame object). Here is an example of how one can do that.
JFrame frame = new JFrame () ;
frame . addKeyListener(keyListener ) ;
 
Search WWH ::




Custom Search