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