2

这是一个有点奇怪的问题,但值得一问:有没有什么方法可以在不使用键侦听器、键绑定、键调度程序等的情况下在 Java 中通用地获取键事件?这里的目标是不使用任何重载类(例如 new KeyListener() { ... })。

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

4

1 回答 1

6
  1. 不可能。

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

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

    请参阅匿名类教程

  3. JAR 是压缩的,您在这里谈论的是数百个字节的顺序。

于 2013-08-16T18:46:26.903 回答