1

所以我的 Java 程序有一个 Main 类来创建和初始化 Game 对象。Game 类包含处理我的程序进程的代码。我的 Game 类初始化了我的 Display 类。我的 Display 类初始化了我的 DisplayPanel 类。我的 DisplayPanel 类实现了 MouseListener。

我的问题是我想按需将 MouseListener 数据发送回 Game 对象。但我无法从 DisplayPanel 正确访问我的游戏对象,因为它包含在 Main 类和方法中。

我想不出解决此问题的正确方法。我确信这个问题和类似的问题相当普遍,并且希望知道处理这个问题的常见和正确的方法以及类似的问题是什么。

如果您真的认为有必要,我会发布代码,但我觉得我已经解释了您真正需要知道的所有内容,这将浪费我的时间。

4

2 回答 2

0

-快速修复将 在类中制作static适当类型Game的变量,该变量将保存从类发回的数据MouseListenerDisplayPanel

于 2012-11-10T04:45:29.127 回答
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 回答