如何让 MouseListener 停止控制
How to get a MouseListener to stop being in control
我正在编写一个 trivia/quiz 程序,其中用户回答问题,his/her 答案根据他们点击的屏幕坐标判断为正确或错误。为了简洁的设计,我希望使用外部函数加载问题,然后将 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 停止监听用户的点击和 return 从 awaitAnswer() 到 main()。
如何停止让 MouseListener 听取用户的声音?我如何退出代码的事件驱动部分并返回到自动执行部分?
移除 awaitAnswer 方法。
使用语句 addMouseListener(this);
.
为 QuizScreen 创建一个(默认)构造函数
从您的 mouseClicked 函数中,只需执行对主程序的回调即可创建和销毁 QuizScreen
我正在编写一个 trivia/quiz 程序,其中用户回答问题,his/her 答案根据他们点击的屏幕坐标判断为正确或错误。为了简洁的设计,我希望使用外部函数加载问题,然后将 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 停止监听用户的点击和 return 从 awaitAnswer() 到 main()。
如何停止让 MouseListener 听取用户的声音?我如何退出代码的事件驱动部分并返回到自动执行部分?
移除 awaitAnswer 方法。
使用语句 addMouseListener(this);
.
从您的 mouseClicked 函数中,只需执行对主程序的回调即可创建和销毁 QuizScreen