键盘监听 addKeyListener的使用方法和说明

addKeyListener

public void addKeyListener(KeyListener l)

添加指定的按键侦听器,以接收发自此组件的按键事件。如果 l 为 null,则不会抛出异常并且不执行动作。 

java.awt.event 
接口 KeyListener

用于接收键盘事件(击键)的侦听器接口。旨在处理键盘事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象 KeyAdapter 类(仅重写有用的方法)

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

方法摘要
void keyPressed(KeyEvent e) 
按下某个键时调用此方法。
void keyReleased(KeyEvent e) 
释放某个键时调用此方法。
void keyTyped(KeyEvent e) 
键入某个键时调用此方法。

——摘自:JDK6API

 

例子:

按 Ctrl+C 复制代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class KeyDemo
{
    //定义该图形中所需的组件的引用
    private Frame f;
    private Button bt; 
    private TextField tf;
    
    //方法
    KeyDemo()//构造方法
    {
        madeFrame();
    }
    
    public void madeFrame()
    {
        f = new Frame("My Frame");
        
        //对Frame进行基本设置。
        f.setBounds(300,100,600,500);//对框架的位置和大小进行设置
        f.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));//设计布局
        
        bt = new Button("My Button");
        tf = new TextField(20);
        
        //将组件添加到Frame中
        f.add(tf);
        f.add(bt);
        
        //加载一下窗体上的事件
        myEvent();
        
        //显示窗体
        f.setVisible(true);
    }
    
    private void myEvent()
    {
        f.addWindowListener(new WindowAdapter()//窗口监听
        {
            public void windowClosing(WindowEvent e)
            {
                System.out.println("窗体执行关闭!");
                System.exit(0);
            }
        });
        bt.addKeyListener(new KeyAdapter()//键盘监听按钮
        {
            public void keyPressed(KeyEvent e)
            {
                if(e.getKeyCode()==KeyEvent.VK_ESCAPE)
                   System.exit(0);
                //组合键
                else if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)
                   System.exit(0);
                else System.out.println(e.getKeyChar()+"..."+KeyEvent.getKeyText(e.getKeyCode()));
            }
            
        });
        tf.addKeyListener(new KeyAdapter()
        {
            public void keyPressed(KeyEvent e)
            {
                int code = e.getKeyCode();
                if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9))
                {
                    System.out.println(code+"..."+"是非法的");
                    e.consume();
                }
            }
        });
    }
    
    public static void main(String[] agrs)
    {
        new KeyDemo();
    }
}

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值