所以我的Java程序有一个Main类,用于创建和初始化Game对象。 Game类包含处理程序处理的代码。我的Game类初始化我的Display类。我的Display类初始化我的DisplayPanel类。我的DisplayPanel类实现了MouseListener。
我的问题是我想根据需要将MouseListener数据发送回Game对象。但我无法从DisplayPanel正确访问我的游戏对象,因为它包含在Main类和方法中。
我想不出一个解决这个问题的正确方法。我确信这个问题和这样的问题相当普遍,并且很想知道处理这个问题的常见和正确方法是什么,以及这个问题。
如果您认为有必要,我会发布代码,但我觉得我已经解释了您真正需要知道的所有内容,这将浪费我的时间。
答案 0 :(得分:0)
- 快速修复将在static
类中生成相应类型的Game
变量,该变量将保存数据< / strong> MouseListener
从DisplayPanel
班级发回。
答案 1 :(得分: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方法,因此不需要实现自己的方法。)