Java:在没有KeyListener或使用任何其他自定义类的情况下抓取键事件

时间:2013-08-16 18:43:17

标签: java class compression keyevent

这是一个奇怪的问题,但值得一提的是:有没有办法在不使用密钥监听器,密钥绑定,密钥调度程序等的情况下在Java中一般性地获取密钥事件?这里的目标是不使用任何重载的类(例如新的KeyListener(){...})。

我试图看看我能做多么小的简单游戏,并且使用重载类相对于普通代码占用相当多的空间,因为当它们被打包到jar中时需要自己的整个类文件

1 个答案:

答案 0 :(得分:5)

  1. 没有办法。

  2. 如果要避免使用单独的源文件,可以使用匿名(或命名)内部类。事实上,匿名内部类非常常用于简单的侦听器或适配器。您也可以在主逻辑类中实现KeyListener,虽然这有点不寻常,但这取决于您的情况。

    void example () {
    
        JComponent component = ...;
    
        component.addKeyListener(new KeyAdapter() {
            @Override public void keyPressed (KeyEvent e) {
                // do stuff
            }
        });
    
    }
    

    请参阅Anonymous Class Tutorial

  3. JAR被压缩了,你这里说的是几百个字节的数量级。