简单写一个java Gui键盘监听事件,实现的效果就是按下键盘控制台输出你按下的键。比如:按下A控制台就输出A
效果如图:
以下把实现的效果分为几个步骤:
1.新建一个窗体类继承窗体;
2.给这个窗体添加addKeyListener(new MyKeyListener()),方法里面实例化监听键盘类;
3.新建一个键盘类继承KeyAdapter;
4.类里面的方法名必须是keyPressed(KeyEvent e);//KeyEvent就是jre对你按下/释放键盘按键的包装
5.实例化窗体类。
下面贴出上图实现的代码:
- importjava.awt.event.KeyAdapter;
- importjava.awt.event.KeyEvent;
- importjavax.swing.JFrame;
- /**
- *
- */
- /**
- *@authorAdministrator
- *
- */
- //窗体类
- publicclassMyFrameextendsJFrame{
- /**
- *@paramargs
- */
- charcharA;
- publicMyFrame(){
- this.setSize(500,100);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setTitle("myjframe");
- this.setVisible(true);
- this.addKeyListener(newMyKeyListener());
- }
- publicstaticvoidmain(String[]args){
- //TODOAuto-generatedmethodstub
- newMyFrame();
- }
- }
- //监听键盘类
- classMyKeyListenerextendsKeyAdapter{
- publicvoidkeyPressed(KeyEvente){
- charcharA=e.getKeyChar();
- System.out.println("你按了《"+charA+"》键");
- }
- }
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
/**
*
*/
/**
* @author Administrator
*
*/
//窗体类
public class MyFrame extends JFrame {
/**
* @param args
*/
char charA;
public MyFrame(){
this.setSize(500,100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("my jframe");
this.setVisible(true);
this.addKeyListener(new MyKeyListener());
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyFrame();
}
}
//监听键盘类
class MyKeyListener extends KeyAdapter{
public void keyPressed(KeyEvent e){
char charA=e.getKeyChar();
System.out.println("你按了《"+charA+"》键");
}
}
另外一种写法就是在给窗体添加监听的时候直接 实例方法,不用再写一个类。建议用这个写法。代码如下:
- importjava.awt.event.KeyAdapter;
- importjava.awt.event.KeyEvent;
- importjavax.swing.JFrame;
- /**
- *
- */
- /**
- *@authorAdministrator
- *
- */
- //窗体类
- publicclassMyFrameextendsJFrame{
- /**
- *@paramargs
- */
- charcharA;
- publicMyFrame(){
- this.setSize(500,100);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setTitle("myjframe");
- this.setVisible(true);
- this.addKeyListener(newKeyAdapter(){
- publicvoidkeyPressed(KeyEvente){
- charcharA=e.getKeyChar();
- System.out.println("你按了《"+charA+"》键");
- }
- });
- }
- publicstaticvoidmain(String[]args){
- //TODOAuto-generatedmethodstub
- newMyFrame();
- }
- }