Advertisement

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();
    
 	}
    
  
    
 }

全部评论 (0)

还没有任何评论哟~