2017-09-27 76 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'。那是我的错误。再次感谢你 –

相关问题