1

したがって、私の Java プログラムには、Game オブジェクトを作成して初期化する Main クラスがあります。Game クラスには、プログラムの処理を処理するコードが含まれています。私の Game クラスは私の Display クラスを初期化します。私の Display クラスは私の DisplayPanel クラスを初期化します。私の DisplayPanel クラスは MouseListener を実装しています。

私の問題は、MouseListener データを必要に応じて Game オブジェクトに送り返したいということです。しかし、メイン クラスとメソッドに含まれているため、DisplayPanel からゲーム オブジェクトに正しくアクセスできません。

これを回避する適切な方法が思いつきません。この問題とこのような問題はかなり一般的であり、この問題とこのような問題を処理するための一般的で適切な方法が何であるかを知っていただければ幸いです.

あなたが本当に必要だと思うならコードを投稿しますが、あなたが本当に知る必要があることはすべて説明したような気がします。それは私の時間の無駄です.

4

2 に答える 2

0

コメントで確立されているように:

これを実現する最も簡単な方法はGame、次のようなクラスです。

public class Game {
    private MouseListener mouseListener = new MouseListener() {
        public void onClick(MouseEvent e) {
            // application logic here
        }

        public Game() {
            DisplayPanel dp = new DisplayPanel();
            dp.addMouseListener(mouseListener);
        }
    };
}

次に、DisplayPanel一連のメソッド呼び出しを介してクラスに送信します。

public class DisplayPanel extends JPanel {
    public void addMouseListener(MouseListener mouseListener) {
        this.addMouseListener(mouseListener);
    }
}

(この場合、JPanel には addMouseListener メソッドがあるため、独自に実装する必要はありません。)

于 2012-11-10T05:14:30.313 に答える
0

-簡単な修正は 、クラスから送り返されたデータを保持するクラスで適切なstaticの変数を作成することです。GameMouseListenerDisplayPanel

于 2012-11-10T04:45:29.127 に答える