Java键盘事件监听(1)

package com.han;

import java.awt.Container;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SpringLayout;

/**
 * 键盘事件监听(1)
 * @author HAN
 *
 */
public class KeyEvent_1 extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = -6762512303624322086L;

	public KeyEvent_1() {
		// TODO Auto-generated constructor stub
		Container container = getContentPane();
		SpringLayout springLayout = new SpringLayout();
		container.setLayout(springLayout);
		JLabel remarqueLabel = new JLabel("remarque :");
		JTextArea textArea = new JTextArea(3, 30);
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setViewportView(textArea);
		container.add(remarqueLabel);
		springLayout.putConstraint(SpringLayout.WEST, remarqueLabel, 5,
				SpringLayout.WEST, container);
		springLayout.putConstraint(SpringLayout.NORTH, remarqueLabel, 5,
				SpringLayout.NORTH, container);
		container.add(scrollPane);
		springLayout.putConstraint(SpringLayout.WEST, scrollPane, 5,
				SpringLayout.EAST, remarqueLabel);
		springLayout.putConstraint(SpringLayout.NORTH, scrollPane, 5,
				SpringLayout.NORTH, container);
		springLayout.putConstraint(SpringLayout.EAST, scrollPane, -5,
				SpringLayout.EAST, container);
		springLayout.putConstraint(SpringLayout.SOUTH, scrollPane, -5,
				SpringLayout.SOUTH, container);

		textArea.addKeyListener(new KeyListener() {

			@Override
			public void keyTyped(KeyEvent e) {
				// TODO Auto-generated method stub
				System.out.println("The charactor you typed : " + "\""
						+ e.getKeyChar() + "\"");
			}

			@Override
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub
				
				// 写大写字母时,释放按键是不知道是否先释放的是shift还是字母按键;但是
				// 可以肯定的是按按键时必须是先按的shift。
				if (e.getKeyCode() == KeyEvent.VK_CONTROL || 
						e.getKeyCode() == KeyEvent.VK_SHIFT ||
						e.getKeyCode() == KeyEvent.VK_ALT) {
					System.out.println("\n" + "The Component triggered : " + e.getSource());
				}
				if (!(e.isControlDown() || e.isShiftDown() || e.isAltDown())) {
					System.out.println("\n" + "The Component triggered : " + e.getSource());
				}
				String keyText = KeyEvent.getKeyText(e.getKeyCode());
				if (e.isActionKey()) {
					System.out.print("The action key you pressed : " + "\""
							+ keyText + "\"");
				} else {
					System.out.print("The non-action key you pressed : " + "\""
							+ keyText + "\"");
					int keyCode = e.getKeyCode();
					switch (keyCode) {
					case KeyEvent.VK_CONTROL:
						System.out.print(", Control key is pressed");
						break;
					case KeyEvent.VK_SHIFT:
						System.out.print(", Shift key is pressed");
						break;
					case KeyEvent.VK_ALT:
						System.out.print(", Alt key is pressed");
						break;
					}
				}
				System.out.println();
			}

			@Override
			public void keyReleased(KeyEvent e) {
				// TODO Auto-generated method stub
				// the integer code for an actual key on the keyboard. 
				// (For KEY_TYPED events, the keyCode is VK_UNDEFINED.)
				System.out.println("The key you released : " +  "\"" +
						KeyEvent.getKeyText(e.getKeyCode()) + "\"");
			}

		});
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		KeyEvent_1 frame = new KeyEvent_1();
		frame.setTitle("KeyEvent Test");
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setBounds(0, 0, 600, 300);
	}

}


Java后台键盘事件监听中,可以通过使用KeyListener接口来实现。KeyListener接口是一个事件侦听器接口,它定义了三个方法用于监听键盘事件。 首先,需要创建一个实现KeyListener接口的类。在该类中,需要实现keyPressed()、keyReleased()和keyTyped()这三个方法。keyPressed()方法在按下键盘上的任意一个键时被调用,keyReleased()方法在释放键盘上的任意一个键时被调用,keyTyped()方法在按下可视按键时被调用。 然后,在使用KeyListener接口的组件上添加键盘事件监听器。可以使用addComponentListener()或者addKeyListener()方法来添加事件监听器。在其中,需要将实现了KeyListener接口的类的实例作为参数传递给addComponentListener()或addKeyListener()方法。 当用户在该组件上进行键盘操作时,就会触发相应的事件,并调用对应的方法。可以在这些方法中编写相应的逻辑来处理键盘事件。例如,可以在keyPressed()方法中检测用户是否按下了某个特定键,如果是的话,就执行相应的操作。 示例代码如下所示: ```java import java.awt.event.KeyEvent; import java.awt.event.KeyListener; public class MyKeyListener implements KeyListener { public void keyPressed(KeyEvent e) { // 按下键盘时的操作 } public void keyReleased(KeyEvent e) { // 释放键盘时的操作 } public void keyTyped(KeyEvent e) { // 输入可视按键时的操作 } } ``` 然后,在需要监听键盘事件的组件上添加事件监听器: ```java import javax.swing.JFrame; public class Main { public static void main(String[] args) { JFrame frame = new JFrame(); frame.addKeyListener(new MyKeyListener()); // 添加键盘事件监听器 frame.setVisible(true); } } ``` 以上就是在Java后台中实现键盘事件监听的基本方法。通过实现KeyListener接口并添加事件监听器,可以方便地监听和处理用户的键盘操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值