我是一名 Java 学生,刚刚结束了一个小命令行纸牌游戏的基本功能。游戏是魔法类集换式卡牌游戏的简化版。没有人工智能,你与自己或其他人类玩家对战。
此时,我正在尝试使用 MVC 向它添加一些 GUI,但我发现将 MouseListener 添加到按钮时遇到问题。
这是对正在发生的事情的简要说明:
- 我有一个
Model
类,它Observable
通过继承超类来扩展 - 一个
View
实现Observer
. - 还有一个
Controller
扩展的类MouseAdapter
然后我把所有东西放在一起:
....
View view = new View();
Model model = new Model();
model.addObserver( view );
Controller controller = new Controller();
// associate Controller's Model and View objects
controller.addModel(model);
controller.addView(view);
view.addController(controller); // i try to add the MouseListener
....
View 的 addController() 方法是:
public void addController(Controller controller){
this.myButton.addMouseListener( controller )
}
我已经检查过addController()
正在调用该方法(其中包含 println 内容),但由于某种原因未设置侦听器:mouseReleased()
单击按钮时从未调用过。
我可能忽略了任何想法或任何步骤?欣赏。
编辑(控制器代码):
public class Controller extends MouseAdapter {
Model model;
View view;
public void addModel(Model m){
this.model = m;
}
public void addView(View ui){
this.view = ui;
}
// All @Overrides
@Override
public void mouseReleased(MouseEvent me) {
System.out.println("oh, it arrived");
}
}