Метод сна, пока событие не сработало - PullRequest
2 голосов
/ 29 января 2010

У меня есть покерный фреймворк, для которого я пытаюсь разработать «игрока». В основном я реализую объект, который реализует интерфейс Player, определенный платформой. Я пытаюсь поместить графический интерфейс поверх этого игрока, так как игровой процесс работает так, что Дилер вызывает метод act() для моего игрока и ожидает тип возврата Action. У меня проблема в том, что после вызова метода act() я обновляю графический интерфейс пользователя (написанный с использованием Swing) для отображения доступных опций, однако теперь мне нужен метод NOT для возврата, пока игрок не выбрал опцию. Параметры отображаются в виде JButtons, которые при нажатии обрабатываются объектом actionListener. Как сделать так, чтобы метод act() не возвращался до тех пор, пока пользователь не предпринял действия? Мне нужен поток, чтобы спать / ждать, пока он не будет разбужен вызванным событием, я не уверен в синтаксисе и лучший способ сделать это. Есть идеи?

Спасибо

Aly

Ответы [ 2 ]

2 голосов
/ 29 января 2010

Я думаю, что подход ошибочен. Метод Act не должен ждать. Вместо этого он должен зарегистрироваться для события (давайте назовем его Acted событие) в экземпляре Player. В то же время он должен запустить таймер, скажем, 20 секунд, и если событие Acted не вызывается до истечения таймера, дилер должен автоматически сбросить игрока (или проверить, в зависимости от ситуации) и то же самое для следующего игрока в очереди.

Это только у меня в голове, но подумай об этом.

1 голос
/ 29 января 2010

Если я не понял вашу проблему, вам нужно использовать ActionListener для этого.

ActionListener - это интерфейс, реализованный в классе, который вы хотите получать, когда происходит событие. Когда конкретное событие инициируется в другой части вашего кода, этот класс предупреждается абстрактным методом интерфейса Action Listener.

Нелегко показать вам краткий ответ, но у меня есть пример Привет, который может вам помочь.

http://java.sun.com/docs/books/tutorial/uiswing/events/actionlistener.html

Е.И.В.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...