2011-08-08 13 views
1

簡単な質問 - のオブジェクトがonMouseMoved()の場合、オブジェクトが移動しないのはなぜですか?私は、iTunes Uでのスタンフォード106A演習の一環としてブレイクアウトを書き込もうとしています。何らかの理由でマウスを追跡するパドルを取得できません。私はJavaのnoobだから、本当にシンプルなものだと確信しています。誰かがこのコードを見てくださいでしたか?MouseMovedでオブジェクトが動かないのはなぜですか?

/** Runs the Breakout program. */ 
    public void run() { 
     setupBoard(); 
     addMouseListeners(); 
    } 

    /** Provides the initial GCanvas and blocks for the game */ 
    private void setupBoard(){ 
     this.setSize(APPLICATION_WIDTH,APPLICATION_HEIGHT); 
     addBricks(); 
     paddle = new GRect(PADDLE_WIDTH, PADDLE_HEIGHT); 
     add(paddle, WIDTH/2-PADDLE_WIDTH/2,HEIGHT-PADDLE_Y_OFFSET); 

    } 

    public void MouseMoved(MouseEvent e){ 
     paddle.move(e.getX()-paddle.getX(), 0); 
     } 

    private GRect paddle; 
} 

私は(パドルが常にパドルだ)その「値」は変化しないためpaddleはインスタンス変数で持つことは、この場合は適切であるかどうかわからないんだけど、私はちょうどとしてそれを定義した場合新しいGRect以内setupBoardMouseMoved()メソッドでエラーが発生しました。

答えて

4

mouseMoved()メソッドを持つクラスは、MouseMotionListenerインターフェイスを実装し、モーションリスナーを追加する必要があります。また、イベントハンドラはmouseMoved()ではなく、MouseMoved()です。ですから、例えば:

+0

あなたは総額およそ右だが、私の知る限りaddMouseListenersは()のMouseListenerとのMouseMotionListenerの両方を追加します。編集したい場合は、あなたの答えを正しく記入します。私はそんなに馬鹿げたミスをしたとは信じられません。 – jefflovejapan

+1

@jefflovejapan - 編集するものは何もありません。addMouseListenersはカスタム(フレームワーク)コードのメソッドで、あなただけが知っているものです:-)すべての部分で正しい答えです。 – kleopatra

+0

@kleopatra - フェアー! – jefflovejapan

関連する問題