简单写一个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();
} }

[置顶] java Gui 键盘监听事件的更多相关文章

  1. js 获取当前焦点所在的元素、给元素和input控件添加键盘监听事件、添加页面级的键盘监听事件

    页面级的键盘监听事件 document.onkeydown = function (event) { var e = event || window.event || arguments.callee ...

  2. JPanel添加键盘监听事件

    因为在自己的游戏需求中谢了要用键盘控制飞机的移动,所以用到键盘监听事件,但是使用了JPanel之后添加了键盘监听事件,按相应的方向键飞机并没有反应.但是如果是为JFrame的内容面板加则会有反应. 为 ...

  3. JAVA JComboBox的监听事件(ActionListener、ItemListener)

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   参考资料: http://263229365.iteye.com/blog/1040329 https://www.ja ...

  4. java中的监听事件

    java监听器实现的类 1.ServletContextListener:对servlet上下文的创建和销毁监听 2.ServletContextAttributeListener:监听servlet ...

  5. GUI常用监听事件

    概念 对鼠标.键盘等一系列事件做出相应的反馈 事件监听 //创建监听事件 public class Demo { public static void main(String[] args) { Fr ...

  6. iOS键盘监听事件

    1.注册键盘通知事件 NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; // 键盘将出现事件监听 [center ...

  7. Android 软键盘监听事件

    Android软键盘的隐藏显示研究 Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入.     那么,弹出软键盘后必然会造成原有布局高度的减少 ...

  8. Cocos Creator 键盘监听事件

    键盘事件键盘.设备重力传感器此类全局事件是通过函数 cc.systemEvent.on(type, callback, target) 注册的.cc.SystemEvent.EventType.KEY ...

  9. 键盘监听事件KeyListener

    说明:按下实体按键,相应虚拟按键变绿色,释放按键,变白色.   public class Demo extends JFrame { private List<JButton> list; ...

随机推荐

  1. Python 模块续和面向对象的介绍(六)

    一.基本模块 shutil 文件.目录.压缩包的处理模块 shutil.copyfile(src, dst) 拷贝文件 >>> shutil.copyfile('a.log','b. ...

  2. Net Core在Linux环境

    Net Core在Linux环境 基础环境和相关软件准备 1.CentOS7.1 64位系统(或者其他CentOS版本的64位系统) 2.WinSCP软件(主要是方便管理和编辑Linux系统的文件) ...

  3. 设置QPushButton的平面与突出(遍历控件)

    #include "ui_maindialog.h" #include "maindialog.h" #include <QState> #incl ...

  4. mysqli_set_charset和SET NAMES优劣分析

    bool mysqli_set_charset ( mysqli $link , string $charset ) 这应该是首选的用于改变字符编码的方法,不建议使用 mysqli_query()执行 ...

  5. linux chmod权限

    Linux chmod 命令 chmod用于改变文件或目录的访问权限.用户用它控制文件或目录的访问权限.该命令有两种用法.一种是包含 字母和操作符表达式的文字设定法:另一种是包含数字的数字设定法. 1 ...

  6. VS2013配置opencv3.0.0 (win8.1)

    今天下载了最新版本的opencv3.0.0,之前一直是opencv2.4.8 点击.exe文件,我将解压后的文件夹放在D:\盘,取名opencv30,D:\opencv30 添加环境变量:D:\ope ...

  7. 三、nginx301跳转302跳转

    301跳转设置: server { listen 80; server_name downcc.com; rewrite ^/(.*) http://www.downcc.com/$1 permane ...

  8. H5前端面试题及答案(2)

    最近想着跳槽,但面试的邀约不多,内心有点烦躁.梳理梳理心情,跳槽季竞争也大,努力做好自己... 21.请设计一套方案,用于确保页面中js加载完全. <!doctype html> < ...

  9. django目录下的各文件

    本文部分转载. 使用Python setup.py install命令从源代码安装完Django后,这些都会被拷贝到Python安装目录下的Lib/site-packages/django子目录中.之 ...

  10. mac下的应用程序发布 及 打包(Python写的脚本,可打包第三方库)

    其实这个问题在网上能搜到大把的解决方案.大家的统一答案都是 otool -L yourapp.app/Contents/MacOS/yourapp 根据输出信息在运行 install_name_too ...