社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
当向文本框中输入内容时,将发出键盘事件。KeyEvent类负责捕获键盘事件,可以通过为组件添加实现了KeyListener接口的监听器类来处理相应的键盘事件。
KeyListener接口共有三个抽象方法,分别在发生击键事件、按键被按下和释放时被触发。
当按下一个键时会调用KeyPressed处理器,当松开一个键时会调用KeyReleased处理器,当输入一个统一编码时会调用KeyTyped处理器。如果这个键不是统一码(如功能键,修改键,动作键和控制键)
KeyListener接口的具体定义如下所示:
public interface KeyListener extends EventListener {
public void keyTyped(KeyEvent e); //发生击键事件时被触发
public void keyPressed(KeyEvent e); //按键被按下时被触发
public void keyReleased(KeyEvent e); //按键被释放时被触发
}
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class t3 extends JFrame{
public t3() {
setTitle("Hern");
setBounds(400, 400, 400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JLabel label = new JLabel();
label.setText("请输入");
add(label, BorderLayout.WEST);
final JScrollPane scrollPane = new JScrollPane();
add(scrollPane, BorderLayout.CENTER);
JTextArea textArea = new JTextArea();
textArea.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) { // 按键被按下时被触发
String keyText = KeyEvent.getKeyText(e.getKeyCode());// 获得描述keyCode的标签
if (e.isActionKey()) { // 判断按下的是否为动作键
System.out.println("您按下的是动作键“" + keyText + "”");
} else {
System.out.print("您按下的是非动作键“" + keyText + "”");
int keyCode = e.getKeyCode();// 获得与此事件中的键相关联的字符
switch (keyCode) {
case KeyEvent.VK_CONTROL: // 判断按下的是否为Ctrl键
System.out.print(",Ctrl键被按下");
break;
case KeyEvent.VK_ALT: // 判断按下的是否为Alt键
System.out.print(",Alt键被按下");
break;
case KeyEvent.VK_SHIFT: // 判断按下的是否为Shift键
System.out.print(",Shift键被按下");
break;
}
System.out.println();
}
}
public void keyTyped(KeyEvent e) { // 发生击键事件时被触发
System.out.println("此次输入的是“" + e.getKeyChar() + "”");// 获得输入的字符
}
public void keyReleased(KeyEvent e) { // 按键被释放时被触发
String keyText = KeyEvent.getKeyText(e.getKeyCode());// 获得描述keyCode的标签
System.out.println("您释放的是“" + keyText + "”键");
System.out.println();
}
});
textArea.setLineWrap(true);//设置文本域自动换行
textArea.setRows(3);//设置文本域行数
textArea.setColumns(5);//设置文本域的列数
scrollPane.setViewportView(textArea);
setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
t3 test = new t3();
}
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!