如何让MouseListener停止控制

时间:2015-03-19 22:22:37

标签: java awt mouselistener

我正在编写一个琐事/测验程序,用户可以根据他们点击的屏幕坐标来回答问题并判断他/她的答案是正确的还是不正确的。对于干净的设计,我希望使用外部函数加载问题,然后将MouseListener附加到屏幕对象。

我的代码目前类似于以下内容。

void main() {
    screen = new QuizScreen();
    //load data for question
    screen.awaitAnswer();
}

public class QuizScreen implements MouseListener{
    //...variables...
    //...blank methods for MousePressed, MouseReleased, etc...
    public void mouseClicked(MouseEvent me){
        //check if answer is right
    }

    public void awaitAnswer(){
        QuizScreen.addMouseListener(this);
    }
}

此代码适用于加载,允许播放和检查单个问题的答案。但是,在加载第一个问题之后,我希望能够重复这个过程 - 加载另一个(可能还有更多)问题 - 通过向" main"添加一个循环。功能。目前这是不可能的,因为我不知道如何让MouseListener停止收听用户的点击并从awaitAnswer()返回到main()。

如何停止让MouseListener收听用户?我如何退出代码的事件驱动部分并返回自动执行部分?

1 个答案:

答案 0 :(得分:0)

删除awaitAnswer方法。

使用语句addMouseListener(this);为QuizScreen创建(默认)构造函数。

从mouseClicked函数中,只需对主程序执行回调即可创建和销毁QuizScreen