[置顶] java Gui 键盘监听事件

         简单写一个java Gui键盘监听事件,实现的效果就是按下键盘控制台输出你按下的键。比如:按下A控制台就输出A

       

        效果如图:

          

         

             以下把实现的效果分为几个步骤:

               1.新建一个窗体类继承窗体;

               2.给这个窗体添加addKeyListener(new MyKeyListener()),方法里面实例化监听键盘类;

               3.新建一个键盘类继承KeyAdapter;

               4.类里面的方法名必须是keyPressed(KeyEvent e);//KeyEvent就是jre对你按下/释放键盘按键的包装

             

               5.实例化窗体类。

               下面贴出上图实现的代码:

               

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+"》键");
	}
}


 

另外一种写法就是在给窗体添加监听的时候直接 实例方法,不用再写一个类。建议用这个写法。代码如下:

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 KeyAdapter(){
			public void keyPressed(KeyEvent e){
				char charA=e.getKeyChar();
				System.out.println("你按了《"+charA+"》键");
			}
		});
		
		
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MyFrame();
	}

}


 

原文地址:https://www.cnblogs.com/pangblog/p/3313227.html