【Java入门】键盘监听器KeyListener

编程入门 行业动态 更新时间:2024-10-24 21:29:26

【Java入门】键盘<a href=https://www.elefans.com/category/jswz/34/1760609.html style=监听器KeyListener"/>

【Java入门】键盘监听器KeyListener

概述

KeyListener是用于接收键盘事件(击键)的监听器接口。

使用组件的 addKeyListener 方法将从该类所创建的侦听器对象向该组件注册。按下、释放或键入键时生成键盘事件。然后调用侦听器对象中的相关方法并将该 KeyEvent 传递给它。

方法

该接口的3个方法
void keyPressed(KeyEvent e) // 按下某个键时调用此方法。
void keyReleased(KeyEvent e) // 释放某个键时调用此方法。
void keyTyped(KeyEvent e) // 键入某个键时调用此方法。

KeyEvent

表示组件中发生键击的事件。

当按下、释放或键入某个键时,组件对象将生成此低级别事件。该事件被传递给每一个 KeyListener 或 KeyAdapter 对象。

主要用到的方法:
public int getKeyCode() // 返回与此事件中的键关联的整数 keyCode。
public char getKeyChar() // 返回与此事件中的键关联的字符

keyCode是一个整数,代表了这个键的编码。
keyChar是指这个键的值,例如某个字母、某个数字、某个符号。

一个keyCode不一定只对应一个按键,keyChar也不一定只对应一个按键。
例如,键盘上方的数字跟小键盘的数字,它们的keyChar相同,但是keyCode不一样。
再例如,左边的shift、ctrl和右边的shift、ctrl,keyCode和keyChar都是一样的(要区分就用getKeyLocation方法)。

详细每个键对应的keyCode可以看看这篇博客:

如何使用

首先用一个监听器类实现KeyListener接口,然后创建对象,在组件上用addKeyListener方法添加监听器。
但是我一开始尝试在JPanel上添加这个监听器对象之后,没有报错,但实际按下键盘却没有反应。百度了一下,发现还漏了一步,就是要让组件获得焦点
所以还要在JFrame设置可见之后,让JPanel获得焦点,可以用 void requestFocus() 方法:请求此 Component 获取输入焦点,并且此 Component 的顶层祖先成为获得焦点的 Window。也可以使用 requestFocusInWindow 方法:如果此 Component 的顶层祖先已经是获得焦点的 Window,则请求此 Component 获取输入焦点。更推荐后者,因为可在各种平台之间一致地实现此方法的焦点行为。

frame.setVisible(true);   //要在这一步之后。。。
// ......
mainPanel.addKeyListener(listener);   //添加按键监听器
mainPanel.requestFocusInWindow();     //获得焦点

更多推荐

【Java入门】键盘监听器KeyListener

本文发布于:2024-02-17 06:56:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1693110.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:监听器   入门   键盘   Java   KeyListener

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!