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.
}
這種方法導致了問題。刪除它引發異常的行并將其留空。在您松開鍵的那一刻,此方法將運行并引發異常。
添加回答
舉報