Java类扩展了Applet和Keylistener?

时间:2012-09-11 20:41:11

标签: java html applet

我有三个班级来制作Snake游戏,Snake,GameBoard和The_Main。 The_Main使用'KeyAdapter'从键盘读入声明为
public class The_main extends KeyAdapter{
但我也想把这个游戏放在一个html页面上,所以我打算把它放在一个小程序中,使用下面的代码:

 <html>
 <title>Applet Test</title>
 <body>
 <applet
    archive = "TheSnake.jar"
    code = "theSnake/The_Main.class"
     width="800" 
    height="800">
 </applet>
 </body>
 </html>

当我加载网页时,它会给我一个java.lang.reflect.InvocationTargetException。我不知道如何获得堆栈跟踪,如果你们需要那个......

1 个答案:

答案 0 :(得分:1)

cannot extend multiple classes in Java。你can implement multiple interfaces,但这不是你想要的。

您应该有一个扩展Applet的类,然后扩展KeyAdapter的类。然后,您可以从KeyAdapter类引用Applet

像这样的Applet(在MyApplet.class中,对于您的HTML):

public MyApplet extends Applet implements Runnable {
    // ...
    public someMethod() {
        MyKeyAdapter adapter = new MyKeyAdapter();
        // Do some stuff with `adapter`
    }
}

然后,您的KeyAdapter(未在HTML中使用; 从Java调用):

public MyKeyAdapter extends KeyAdapter {
    // ...
}