在Swing的事件处理中也可以对键盘的操作进行监听,直接使用KeyListener接口即可。
package com.beyole.util;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
class MyKeyHandle extends JFrame implements KeyListener {
private JTextArea text = new JTextArea();
public MyKeyHandle() {
super.setTitle("Crystal");
JScrollPane pane = new JScrollPane(text);// 加入滚动条
pane.setBounds(5, 5, 300, 200);
super.add(pane);// 像窗体加入组件
text.addKeyListener(this);// 加入key监听
super.setSize(310, 210);// 设置窗体
super.setVisible(true);// 显示窗体
super.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent arg0) {
System.exit(1);// 系统退出
}
});
}
public void keyPressed(KeyEvent e) {
text.append("键盘" + KeyEvent.getKeyText(e.getKeyCode()) + "键向下\n");
}
public void keyReleased(KeyEvent e) {
text.append("键盘" + KeyEvent.getKeyText(e.getKeyCode()) + "键松开\n");
}
public void keyTyped(KeyEvent e) {
text.append("输入的内容是" + e.getKeyChar() + "\n");
}
}
public class MyKeyEventDemo {
public static void main(String[] args) {
new MyKeyHandle();
}
}
程序截图:
以上程序中针对每个键盘的操作都会进行监听,而且在取得键盘信息时最好使用KeyEvent类提供的静态方法getKeyText()完成。