将MouseListener数据发送回游戏处理程序

时间:2012-11-10 04:40:45

标签: java main mouselistener

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

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

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

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

2 个答案:

答案 0 :(得分:0)

- 快速修复将在static类中生成相应类型Game变量,该变量将保存数据< / strong> MouseListenerDisplayPanel班级发回。

答案 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方法,因此不需要实现自己的方法。)