2017-09-27 74 views
0

我正在編寫遊戲代碼,並且我正在使用KeyAdapter類來處理鍵盤輸入,但是我遇到了一個問題。我擴展和使用KeyAdapter類的功能如下爲什麼我們不能在類中重寫

class Kadapter extends KeyAdapter { 
    @Override 
    public void keyPressed(KeyEvent e) { 
    //here i will write required code 
    } 
} 

時,我所有的類,那麼我不重寫功能鍵得到任何錯誤外寫它壓 但現在想,如果我把它定義內的任何其他類如下所示

class Arena extends JPanel { 
    Player pl; 

    Arena() { 
    pl = new Player(); 
    } 

    class Kadapter extends KeyAdapter { 
    @Override 
    public void KeyPressed(KeyEvent e) { 
    } 
    } 
} 

然後我得到錯誤重寫函數keyPressed。誰能告訴我爲什麼。我想在舞臺類中定義它,因爲我需要在Kadapter類中使用相同的播放器類實例。以及我可以通過函數傳遞該實例。但我在這裏的問題是,爲什麼我們不能在競技場類中重寫相同的函數。我會找到任何關於球員問題的替代解決方案,這不是問題,但請告訴我關於這個替代問題。我對此很好奇。

+4

KeyPressed與keyPressed不同。 Java區分大小寫。下一次,發佈準確完整的錯誤信息:它會準確告訴問題出在哪裏,閱讀起來會非常有幫助。閱讀錯誤信息時,一切都變得更加簡單。並縮進您的代碼以使其可讀。投票結束爲錯字。 –

+0

謝謝,我只注意到我的錯誤。 –

回答

0

您可以在嵌套類中定義和實現。不應該有任何問題。

到目前爲止,我只能看到問題是方法名稱爲KeyPressed

class Arena extends JPanel { 
    Player pl; 

    Arena() { 
    pl = new Player(); 
    } 

    class Kadapter extends KeyAdapter { 
    @Override 
    public void KeyPressed(KeyEvent e) { 
    } 
    } 
} 

應該在keyPressed

k作爲小寫!

+0

謝謝你們。剛注意到我正在用大寫字母寫'K'。那是我的錯誤。再次感謝你 –

相關問題