键盘监听
使用KeyListener完成键盘操作和输入信息的监听
- KeyListener不能单独使用,必须使用组件当作中间媒介,此处使用JFrame添加监听器
- getKeyChar()返回每敲击键盘后得到的字符
- getKeyCode()返回按键码,用来查知用户按了什么键,如[Shift]键code为16
- getKeyCode()在keyTyped() 上是无法检测出来的,因为keyTyped()只管用户输入的字符,而不会管到键盘的对应码。因此要将getKeyCode()方法写keyPressed()或keyReleased()方法中,这两个方法是处理比较低层的方法
/**
* this is a keyboard listener
* @author XYM_
* @date 2021-4-22
* @version 1.0
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class KListener implements KeyListener{
@Override
public void keyTyped(KeyEvent e){
System.out.println("Key Type Event");
System.out.println("Key char: " + e.getKeyChar());
}
@Override
public void keyPressed(KeyEvent e){
System.out.println("Key Press Event");
System.out.println("Key Code: " + e.getKeyCode());
}
@Override
public void keyReleased(KeyEvent e){
System.out.println("Key Released Event");
//System.out.println("Key Code: " + e.getKeyCode());
}
public static void main(String[] args){
javax.swing.JFrame f = new javax.swing.JFrame();
f.addKeyListener(new KListener());
f.setSize(300,200);
f.setDefaultCloseOperation(3);
f.setVisible(true);
}
}
运行结果:
D:\PractiseJava\Monitor>java KListener
Key Type Event
Key char: 啊
Key Press Event
Key Code: 16
Key Released Event
Key Press Event
Key Code: 65
Key Type Event
Key char: a
Key Released Event
Key Press Event
Key Code: 66
Key Type Event
Key char: b
Key Released Event
简单应用:设置组合键Ctrl+K打开指定网页
@Override
public void keyPressed(KeyEvent e){
System.out.println("Key Press Event");
System.out.println("Key Code: " + e.getKeyCode());
try{
if(e.getKeyCode() == KeyEvent.VK_K && e.isControlDown()){
Runtime.getRuntime().exec("cmd /c start http://www.baidu.com\"");
}
}catch(IOException ie){
ie.printStackTrace();
}
}