我是一名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");
}
}
参考方案
您一定做错了,但是没有代码我不能说什么。
这是一些有效的简单代码(也许可以帮助您了解自己在做什么错):
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class Test1 extends JFrame {
public Test1() {
initUI();
}
private void initUI() {
JPanel container = new JPanel();
container.setLayout(new BorderLayout());
container.setBackground(Color.black);
JButton b = new JButton("test");
b.addMouseListener(new Controller());
container.add(b);
add(container);
pack();
}
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Test1 c = new Test1();
c.setVisible(true);
}
});
}
class Controller extends MouseAdapter {
@Override
public void mouseReleased(MouseEvent me) {
System.out.println("oh, it arrived");
}
}
}
Spring MVC Web应用程序检测暴力攻击的最佳方法? - javaSpring 3.0 MVC中是否有专门用于帮助检测Web应用程序的身份验证/登录页面上的蛮力攻击的功能? 参考方案 经过长期验证的实践是,如果身份验证失败,则会引入随机但相当大的延迟。这样,合法用户将立即登录,但攻击者每次尝试将花费500ms-1s,这使整个暴力概念不切实际(将永远存在)。合法用户偶尔失败的登录只会使他们稍有延迟,并且不会引起注意。如果需要…
Java:正则表达式模式匹配器是否有大小限制? - java我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)
Spring MVC:如何获取请求的处理程序方法 - java我正在尝试根据Spring @RequestMapping注释方法上存在的注释实现一些逻辑。因此,我的方法中有一个HttpServletRequest实例,我想问一下spring“给我一个方法,该方法将被调用以处理此请求”,因此我可以使用反射API来询问是否存在我的注释,因此我可以更改处理。有什么简单的方法可以从Spring MVC获取此信息? java大神…
Java:线程池如何将线程映射到可运行对象 - java试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …
将JSON发布到Spring MVC Controller返回400错误请求 - java我想发布JSON并让Jackson将其转换为POJO,但是现在我什至无法发布简单的String参数。我正在使用Jackson 2.3.2(jackson-core和jackson-databaind)我正在使用Spring 3.2.8.RELEASE(spring-context,spring-webmvc)我的控制器如下所示:@RequestMapping…