2 回答

TA贡献1998条经验 获得超6个赞
当您KeyListener
在应用程序类中实现时,您需要为keyPressed
and keyReleased
方法提供实现。显然,您使用 IDE 来生成存根实现。
问题是存根实现不一定有效。IDE 不“知道”这些方法的含义……或者它们在您的应用程序中实际应该做什么。在这种情况下,IDE 插入了一个实现,该实现旨在在调用时抛出异常……提醒您需要查看代码并正确实现该方法。
在这种情况下,确实有必要keyRelease
正确实现该方法,因为每当您释放先前按下的键时都会调用该方法。
但是实现很简单。真的很直接。您的方法根本没有做任何事情,因为关键版本与您的游戏无关。
或者更好:根据@MadProgrammer 的评论以不同的方式执行此操作!
教训:
阅读您添加到类中的接口的javadocs是一个好主意,以便您了解需要实现的内容。
阅读 IDE 完成向导为您添加的代码。他们并不总是正确的。(他们不能!)
当您遇到异常时,请阅读堆栈跟踪。它会告诉你异常发生在哪里。然后看代码……想一想。
消息“尚不支持”。是一个很大的线索。这是说有人还没有完成编码的工作。(在这种情况下,那个人就是你。)
程序员最重要的调试工具是他/她的大脑,以及将线索放在一起诊断问题的能力。这需要练习。我的建议是开始练习!

TA贡献1829条经验 获得超13个赞
public void keyReleased(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
这种方法导致了问题。删除它引发异常的行并将其留空。在您松开键的那一刻,此方法将运行并引发异常。
添加回答
举报