Я пишу программу мелочей/викторин, в которой пользователь отвечает на вопросы, и его/ее ответы оцениваются как правильные или неправильные в зависимости от выбранных ими координат экрана. Для чистого дизайна я хочу загрузить вопросы с помощью внешней функции, а затем присоединить 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);
}
}
Этот код отлично подходит для загрузки, позволяя играть и проверять ответ на один вопрос. Однако после того, как первый вопрос был загружен, я хочу иметь возможность повторить процесс - загрузить еще один (и, возможно, еще много) вопросов - добавив цикл в «главную» функцию. В настоящее время это невозможно, так как я не знаю, как заставить MouseListener прекратить прослушивание кликов пользователя и вернуться с awaitAnswer() на main().
Как отключить MouseListener для прослушивания пользователя? Как я могу выйти из раздела моего кода и вернуться к разделу автоматического выполнения?