键盘监听器学习

键盘监听器和动作,鼠标

监听器一样,都是一个接口,在类中引用,继承它的三个方法

    @Override
    public void keyTyped(KeyEvent e) {
        
    }

    @Override
    public void keyPressed(KeyEvent e) {

    }

    @Override
    public void keyReleased(KeyEvent e) {

    }

 分别为输入,按下,松开

键盘监听器也可以直接加在界面上,在界面上用英文输入法时,可以被监听器检测到

但是但是,如果同时存在按钮对象,则会出现bug

如图,在按钮上出现的小矩形就是焦点,如果只有界面的话,焦点给的是界面,但如果出现按钮,文本框等,那么焦点会默认给到这些部件,即使点击界面也不会切换。

那么只能通过代码来实现焦点的切换,直接在窗体添加监听器的地方切换焦点

        //键盘监听
        frame.addKeyListener(listener);
        //默认让窗体获得焦点
        frame.requestFocus();

为了能在点击按钮后焦点依然在界面上,在每次点击按钮后,要再一次实现焦点的切换。

    Jframe frame;
    ...
    @Override
    public void actionPerformed(ActionEvent e) {
        if(){
...
         }
...
        //在每次点击按钮后让界面取回焦点
        frame.requestFocus();
    }

接下来介绍一下键盘监听器的三个方法

先看keyPressed方法和keyReleased方法,顾名思义,这两个就是检测按下和松开按钮

在方法中可以通过getKeycode方法来监听按下按钮的编号,这个方法中对每一个键都对应了数字,包含空格,上下左右等按钮

    @Override
    public void keyPressed(KeyEvent e) {
        System.out.println("按下"+e.getKeyCode());
    }

    @Override
    public void keyReleased(KeyEvent e) {
        System.out.println("松开");
    }

最后来看keyTyped方法,这个方法更适合叫输入,按钮中不一定都是有输入的,比如上下左右键,按这些键的时候就不会触发keyTyped方法,我们通过getKeyChar方法来看看

    @Override
    public void keyTyped(KeyEvent e) {
        System.out.println("输入"+e.getKeyChar());
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值