Java KeyListener:
We can use the Eclipse IDE for this example. If you do not know about it then follow this link- How to Install Eclipse For Java and create a program in it. |
Java KeyListener listens for key events. They are represented by objects implementing the KeyListener interface (located in the java.awt.event package). KeyListener specifies three methods that must be implemented by a KeyListener’s class. These methods have the following signatures.
- public abstract void keyPressed (KeyEvent e)
- public abstract void keyReleased (KeyEvent e)
- public abstract void keyTyped (KeyEvent e)
The keyPressed method is called when a key-pressed event occurs, the keyReleased method is called when a key-released event occurs, and the keyTyped method is called when a key-typed event occurs. To register with a key source, a KeyListener must call the source’s addKeyListener method. (To de-register, a KeyListener would call the source’s removeKeyListener method).
Sample Code for Java KeyListener:
Download the image from here and paste it into the java project folder.
![Java KeyListener 2 keylistener java code 1](https://gkscientist.com/wp-content/uploads/2023/01/keylistener-java-code-1.png)
![Java KeyListener 3 Java KeyListener Code 2](https://gkscientist.com/wp-content/uploads/2023/01/Java-KeyListener-Code-2.png)
![Java KeyListener 4 Java KeyListener Code 3](https://gkscientist.com/wp-content/uploads/2023/01/Java-KeyListener-Code-3.png)
Output: Moveable image. Press keys a, w, s, and d.
![Java KeyListener 5 Java KeyListener Output](https://gkscientist.com/wp-content/uploads/2023/01/Java-KeyListener-Output.png)
import java.awt.event.*;
import javax.swing.*;
import java.awt.Color;
public class Key_listener extends JFrame implements KeyListener{
JLabel label;
ImageIcon icon;
Key_listener(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400,400);
this.setLayout(null);
this.addKeyListener(this);
icon = new ImageIcon("rocket_icon.jpg");
label = new JLabel();
label.setBounds(0, 0, 100, 100);
label.setIcon(icon);
//label.setBackground(Color.GREEN);
//label.setOpaque(true);
this.getContentPane().setBackground(Color.WHITE);
this.add(label);
this.setVisible(true);
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
switch(e.getKeyChar()) {
case 'a': label.setLocation(label.getX()-10, label.getY());
break;
case 'w': label.setLocation(label.getX(), label.getY()-10);
break;
case 's': label.setLocation(label.getX(), label.getY()+10);
break;
case 'd': label.setLocation(label.getX()+10, label.getY());
break;
}
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
switch(e.getKeyCode()) {
case 37: label.setLocation(label.getX()-10, label.getY());
break;
case 38: label.setLocation(label.getX(), label.getY()-10);
break;
case 39: label.setLocation(label.getX()+10, label.getY());
break;
case 40: label.setLocation(label.getX(), label.getY()+10);
break;
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("You released key char: " + e.getKeyChar());
System.out.println("You released key code: " + e.getKeyCode());
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Key_listener();
}
}
Comments (No)