2012-09-11 79 views
-2

我有三個類來製作一個Snake遊戲,Snake,GameBoard和The_Main。 The_Main使用'KeyAdapter'從鍵盤讀入聲明是
public class The_main extends KeyAdapter{
但是我也想把這個遊戲放在一個html頁面上,所以我打算把它放在applet中,使用下面的代碼:Java類擴展Applet和Keylistener?

<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。我不知道如何獲得堆棧跟蹤,如果你們需要的話。

+0

一如果這是一個問題,那麼類不能擴展兩個類。請給我們更多的信息。 – Keppil

回答

1

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

你應該有一個類延伸Applet,然後延伸KeyAdapter。然後您可以參考KeyAdapterApplet類。

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 { 
    // ... 
}