这是一个有点奇怪的问题,但值得一问:有没有什么方法可以在不使用键侦听器、键绑定、键调度程序等的情况下在 Java 中通用地获取键事件?这里的目标是不使用任何重载类(例如 new KeyListener() { ... })。
我试图看看我可以制作一个简单的游戏有多小,并且使用重载类相对于普通代码占用了相当多的空间,因为当它们被打包到一个 jar 中时,它们需要自己的整个类文件。
这是一个有点奇怪的问题,但值得一问:有没有什么方法可以在不使用键侦听器、键绑定、键调度程序等的情况下在 Java 中通用地获取键事件?这里的目标是不使用任何重载类(例如 new KeyListener() { ... })。
我试图看看我可以制作一个简单的游戏有多小,并且使用重载类相对于普通代码占用了相当多的空间,因为当它们被打包到一个 jar 中时,它们需要自己的整个类文件。
不可能。
如果您想避免单独的源文件,您可以使用匿名(或命名)内部类。事实上,匿名内部类对于简单的侦听器或适配器非常常见。您也可以在主逻辑类中实现 KeyListener,虽然这有点不寻常,但这取决于您的情况。
void example () {
JComponent component = ...;
component.addKeyListener(new KeyAdapter() {
@Override public void keyPressed (KeyEvent e) {
// do stuff
}
});
}
请参阅匿名类教程。
JAR 是压缩的,您在这里谈论的是数百个字节的顺序。