Java KeyEvent(键盘事件) - Go语言中文社区

Java KeyEvent(键盘事件)


简介

当向文本框中输入内容时,将发出键盘事件。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();

	}

}

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_36761831/article/details/81545050
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 16:29:51
  • 阅读 ( 986 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢